# Guardian Scopes

*Guardian* es el nombre del mecanismo de perfilamiento desarrollado para DNA. Guardian permite limitar accesos a rutas y elementos según los roles de usuario.

Este archivo define los distintos ámbitos (scopes) que pueden ser restringidos a los usuarios. La idea es definir para distintas entidades del negocio una serie de privilegios que pueden ser asignables a un rol y que va a limitar las acciones que distintos usuarios con distintos roles pueden realizar.

{% code title="guardianScopes.js" %}

```javascript
export default {
  users: [
    { key: 'list', label: 'Listar' },
    { key: 'read', label: 'Ver' },
    { key: 'create', label: 'Crear' },
    { key: 'edit', label: 'Editar' },
    { key: 'delete', label: 'Eliminar' },
    { key: 'activate', label: 'Activar' },
    { key: 'export', label: 'Exportar' },
  ],
  roles: [
    { key: 'list', label: 'Listar' },
    { key: 'read', label: 'Ver' },
    { key: 'create', label: 'Crear' },
    { key: 'edit', label: 'Editar' },
    { key: 'delete', label: 'Eliminar' },
  ],
}
```

{% endcode %}

La anatomía de este archivo es exportar por defecto un objeto que tiene como atributos las entidades o conceptos que pueden ser susceptibles de perfilar. El valor que toman estos atributos es un *Array* de objetos definidos por una *key* que es el identificador único dentro del atributo, por convención *kebab case* y un *label* que es el nombre legible del privilegio o *scope.*
