Ayuda - Seguridad

Figura 1: Listado de permisos

 

Figura 2: Listado de roles

 

Figura 3: Editar roles de un usuario

 

Figura 4: Editar permisos de un rol

La seguridad está basada en tres piezas fundamentales: usuarios, roles y permisos.

Todas las páginas que se visitan en el sistema están protegidas de forma que sólo aquellos usuarios a los que se ha dotado con los permisos oportunos pueden acceder.

El sistema cuenta con más de 50 permisos diferentes: ver estadísticas, editar usuarios, enviar propuestas, aceptar propuestas,... (Figura 1) Para no tener que asignar cada uno de los permisos a los usuarios de forma individual existen los roles. Los roles agrupan permisos de forma que en lugar de asignar permisos a usuarios se les asigna uno o más roles (Figuras 2, 3 y 4). Cada uno de estos roles tienen asociados un conjunto de permisos (Figura 4) por lo que finalmente los permisos de un usuario se obtienen a partir de los roles.

Este sistema común de seguridad basado en usuarios/roles/permisos se ha variado ligeramente para adecuarlo a las necesidades del sistema. Así, la asociación de un usuario a un rol puede ser:

  • por congreso: ese rol se aplica en todo el congreso. Si el permiso está relacionado con una propuesta (por ejemplo aceptación de propuestas) se aplicará a todas las propuestas del congreso.
  • por panel: ese rol se aplica a todas las propuestas de un determinado panel. Así, si el rol se asocia al panel Pragmática y este rol tiene el permiso de rechazar propuestas el usuario con este rol asociado no podrá rechazar las propuestas de otro panel.
  • por propuesta: ese rol se aplica únicamente sobre la propuesta. Si el rol tiene el permiso de eliminar una propuesta sólo podrá eliminar la propuesta asociada al rol.
  • por texto completo: igual que el anterior pero con textos completos.

Mediante varios ejemplos vamos a explicar de nuevo el funcionamiento.

Ejemplo 1: Organizadores del congreso
Cada congreso tiene una serie de personas que deben tener un control exhaustivo de todo lo que ocurre en el sistema. Para ello existe un rol "Organizador de Congreso" que tiene asociados un elevado número de permisos, como por ejemplo ver estadísticas y gestionar inscripciones. Este rol se aplica a todo el congreso.

Ejemplo 2: Revisor/Director de panel
En aquellos congresos con áreas temáticas o paneles hay usuarios encargados de revisar las propuestas no del congreso en su totalidad sino de un panel determinado. Para ello se cuenta con un rol "Revisor" que tiene entre otros los permisos para aceptar y rechazar propuestas. Si este rol se aplicara al congreso en su totalidad este usuario podría aceptar y rechazar propuestas que no le corresponden. Para ello, cuando se crea el usuario revisor de panel se le asocia el rol revisor pero únicamente a los paneles que gestiona. De esta forma sólo podrá aceptar y rechazar las propuestas de sus paneles. Si se quisiera que todos los revisores de panel pudieran leer las propuestas del resto de paneles, pero no tomar decisiones sobre ellas, siempre se puede asignar un segundo rol que tenga el permiso de consultar propuestas y aplicar este rol de forma global al congreso.

Ejemplo 3: Evaluadores de un congreso sin paneles
En un congreso con paneles los evaluadores suelen asociarse a un determinado panel por lo que el proceso sería más simple (un rol evaluador asignado a un panel). En un congreso sin paneles la gestión de roles varía ligeramente. En este caso, a un usuario se le asignaría el rol evaluador pero vinculándolo a la propuesta que hemos indicado que tiene que evaluar. Recordemos que un usuario puede tener varias asignaciones de roles por lo que si se quisiera añadir otra propuesta para evaluación se podría asignar de nuevo el rol evaluador para la nueva propuesta.