En Anjana Data, la autorización de los usuarios se basa en la asignación de roles a las personas dentro de unidades organizativas (OUs). Esta combinación determina qué acciones puede realizar cada usuario y en qué ámbitos dentro de la plataforma.
Tabla User-Ou-Roles del Panel de Configuración (Visión administrador)
La gestión de estas asignaciones se realiza a través de la tabla Users-OU-Roles, que actúa como el mecanismo central de control de permisos.
Users-OU-Roles para asignación de roles a usuarios en OUs
Estructura de la tabla Roles
Cada registro en la tabla users_ou_role define una asignación única entre un usuario, una unidad organizativa y un rol.
Los elementos que caracterizan dicha asignación son:
-
user: identificador único del usuario.-
Corresponde al campo
idde la tablaUsers.
-
-
ou: identificador único de la Unidad Organizativa.-
Corresponde al campo
idde la tablaOrganizational Unit.
-
La asignación debe realizarse en una unidad organizativa hoja, nunca en un nivel intermedio o nivel raíz. Por ejemplo, si se ha configurado la unidad “Espacio de datos/Turismo”, nunca se deben asignar roles a nivel de “·Espacio de datos”
-
role: identificador único del rol.-
Corresponde al campo
idde la tablaRoles.
-
Asignación de roles a usuarios
Para asignar a un usuario un rol (ver configuración de la tabla Roles) se deben seguir los siguientes pasos:
-
Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura.
-
Completar los campos conforme a lo siguiente:
-
user: Seleccionar el identificador del usuario. Si el usuario no existe, se debe crear previamente. -
ou: Seleccionar la unidad organizativa hoja correspondiente. Si no existe, se debe crear previamente. -
role: Seleccionar el rol de entre los roles configurados previamente. Si el rol no existe, se debe crear previamente.
-
-
Pulsar en Save para guardar el rol o en Cancel para descartar.
Para autorizar correctamente a usuarios con roles cross, se deben crear tantos registros como unidades organizativas hoja existan para poder autorizar con el rol cross en todas ellas.
Si en el perfil del usuario al que se le ha asignado un rol cross aparece un listado de unidades organizativas en lugar de la información de rol cross, esto es indicador de que falta alguna unidad organizativa por asignar el rol. En este caso, la plataforma emite una notificación al rol que se haya configurado (ver apartado de Notificaciones de plataforma y workflows)
Modificación de las autorizaciones
Para modificar la asignación de roles a usuarios en unidades organizativas se puede realizar eliminando un registro y creando uno nuevo.
Configuración de la autorización mediante acceso directo a la base de datos (Visión desarrollador)
La tabla de base de datos (BD) que contiene la parametría de la asignación de roles a usuarios tiene esta estructura:
|
Columna |
Tipo de dato |
Restricciones / Notas |
|---|---|---|
|
user_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
ou_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
rol_id |
int4 (INTEGER) |
No nulo. Clave foránea a |
|
unique_idx |
— |
Restricción UNIQUE (user_id, ou_id, rol_id). Garantiza que no existan duplicados en la combinación user–OU–rol. |
Claves foráneas
|
Columna |
Tabla referenciada |
Campo referenciado |
Descripción |
|---|---|---|---|
|
|
|
|
Valida que el usuario exista. |
|
|
|
|
Valida que la unidad organizativa exista. |
|
|
|
|
Valida que el rol exista. |
Ejemplo de configuración mediante SQL
Para definir las asignaciones de usuario a roles:
INSERT INTO zeus.user_ou_role (user_id, ou_id, rol_id) VALUES
(1,1,1),
(1,39,4),
(2,1,15),
(2,1,16),
(2,3,2);