Conceptos Clase Usuario (usu)

Base de ejemplo: test-permisos

Representan cada usuario de BD, que permite el acceso a  la misma, con distintos niveles de permisos. Los niveles de permisos también son de clase usu.

Una vez abierta la base con nombre de usuario y contraseña, el acceso a los datos del propio usuario están en el enlace con su nombre de la esquina superior derecha de la página. Los usuarios NO administradores sólo tienen acceso a su usuario, y sólo a la función de cambiar su contraseña, EXCEPTO los usuarios del grupo invitados (g4), que ni siquiera pueden cambiarla.

Cada usuario, al estar asociado a un grupo de permisos, entra en el concepto carpeta que ese grupo de permisos o el propio usuario en particular, tenga definido en el campo Raiz.

Usuarios administradores

En el enlace de su usuario, tienen el panel completo de todos los usuarios que pueden gestionar creando, eliminando y modificando: la contraseña, el grupo de usuarios, el grupo de trabajo asociado, y los que se explican a continuación:

Mantenimiento: Grupo de trabajo

El Grupo de trabajo asociado a un usuario filtra las Tareas que puede ver: sólo las asignadas a ese grupo o las que no tienen asignado grupo de trabajo. 

Grupos de usuarios (perfiles)

IMPORTANTE: el grupo con código 'admin' no tiene ninguna restricción, y se ignoran si se le aplican: no se debe redefinir, existe internamente.

Son conceptos de clase usuario que definen características comunes para aplicar a un mismo perfil de usuarios. No tienen contraseña (nadie va a acceder con ellos) y en cambio los usuarios con contraseña apuntan a estos perfiles en el campo Grupo. Lo normal es que también tangan definido campo Raíz, que indica el código de una carpeta de la BD que se mostrará como punto de entrada de la base a todos los usuarios de ese Grupo. En cambio los usuarios de acceso (con clave) no suelen tener carpeta Raíz particular.

También puede haber (aunque no es habitual) varios niveles de grupos de usuarios en los que se heredan de unos a otros las restricciones.

Existen 4 grupos con nombres y restricciones predefinidas, con códigos: g1, g2, g3, g4. Sus permisos se definen más adelante.

 

Grupo comodín de usuarios.

Se puede definir un grupo con el código de una clase, para poder utilizar conceptos como cientos de entidades que ya tenemos en BD, de forma que sean los usuarios de acceso con el login.

Lo primero es establecer en el apartado Base > General> Clase de usuarios, el código de la clase que queremos utilizar. Luego, si definimos un grupo usu.ent, en la clase hay que definir un campo pwd0 (password inicial) y un pwd que sustituirá el campo usu.pwd.

Además se tiene en cuenta el ámbito del propio concepto entidad en este caso, para filtrar todos los conceptos con ese ámbito, como si estuviera definido en usu.amb.

En cada concepto de esa clase hay que introducir la clave inicial, que se copiará también al campo clave. En cuanto un usuario acceda con su nombre de usuario (código de entidad) y esa clave, y la modifique, se eliminará la clave inicial, lo que también nos permite un control de qué usuarios la han cambiado ya.

En la base comun hay un procedimiento de ejemplo para poner a cada concepto de una clase un ámbito automático secuencial y a todos sus conceptos relacionados ponerle el mismo, de forma que independicemos el inventario para cada usuario.

Restricciones de acceso a clases de BD

En el campo restricciones, se pueden especificar en formato <codigo_clase>: -|D|C|E|L  una lista de restricciones separadas por espacios en blanco.
- Hay 3 <código_clase> con un código especial:
  CLA: los conceptos de definición de clases: los de código que comienza con un punto y NO usuarios (.car, .dir, .pro...)
  CON: todos los demás que no son clases
  USU: sólo los conceptos usuario y grupos de usuarios (.usu)

- El tipo de restricción sólo es una e incluye las anteriores en cascada, por ejemplo: C restringe o impide la Creación de conceptos de una clase, pero también la Destrucción (eliminar), que es anterior en esa lista. L es el más restrictivo, e impide la Lectura (acceso) y por tanto, cualquier otra operación: Edición (modificación), Creación y Destrucción.

- El guión (-) significa no aplicar ninguna restricción DCEL; básicamente sirve par anular restricciones ya impuestas o heredadas, por ejemplo: con:E car:- significa permisos completos a carpetas, a pesar de habérselos quitado a todas las clases de conceptos (con).
- El orden importa y se examina de derecha a izquierda, por lo que:  con:E car:C da permiso de Destrucción a las carpetas, pero car:C con:E no tiene sentido, porque primero quita todos los permisos de modificación a todos los conceptos y ya no se examinan más condiciones.
- En las 5 clases generales de organización cla, car, bus, pro, dir, las restricciones tienen algunos matices:
   C impide crear conceptos de esas clases, Y editar sus datos (el camino de los directorios, la consulta de las búsquedas, el código o resumen de las carpetas, el programa javascript o la definición de parámetros de los procedimientos...)
   E impide la ejecución de procedimientos, modificar el contenido de los directorios (insertar, eliminar, renombrar), y editar en columnas los datos de las listas resultado de carpetas y búsquedas
   L impide el acceso completo a esas clases y su información relacionada.

Ejemplo: car:C bin:E esp:D

que significa:
1º No puede Destruir (borrar) espacios (ni sus subclases, ya que las restricciones de clase se heredan), pero sí Crearlos y Editarlos.
2º No puede Editar bins, ni ninguna de sus subclases, y por tanto, tampoco Crear ni Destruir.
3º No puede Crear ni Destruir grupos de trabajo, ni modificar su nombre, o forma de presentación. 

 

El cuadro de grupos predefinidos es:

cod  nombre        restricciones internas                                                 restricciones acumuladas editables           

g0 (admin)
g1 (exper)    usu:L
g2 (técnico)  usu:L cla:C dir:C pro:C bus:C car:C      dir:E pro:E bus:E car:E
g3 (operador) usu:L cla:E dir:E pro:E bus:E car:E      con:E dir:L pro:L
g4 (anónimo)  usu:L con:E con:E

 

Además:

- se aplican unas restricciones básicas de defecto de la aplicación, que son visibles en el campo Restricciones acumuladas), y sirven para no tener que definirlas siempre, pero el administrador (que no tiene) puede cambiarlas.

- no sólo se puede restringir por clases (más las especiales CLA y CON), también con unos campos especiales, para que cierto usuario o grupo no tenga acceso a: Gráficos, Mapas, al botón de edición...

Los grupos admin y exper (g1) tienen características especiales, como que el primero no filtra la búsquedas o que ciertas pestañas están reservadas a cada uno. admin es el gestor del continente de BD: modelo de relaciones, clases, campos... y el g1 (exper) el administrador del contenido: búsquedas y reemplazos masivos, acceso a todas las clases...

El resto de usuarios a partir del g2, incluido, tienen ocultos: el campo de búsqueda en lenguaje natural, la pestaña de clases y la navegación por la estructura de clases.

Permisos por ámbitos

Cada usuario tiene 3 campos para gestionar la compartimentación de la información dentro de una BD: El campo Ámbito, Ámbito inicial y Ámbito final (no incluido).

El ámbito es un número entero que asociado a un usuario, hace que sólo pueda ver los conceptos de BD que tengan ese mismo ámbito y los que no tengan especificado ninguno. También indica qué ámbito se pone a todos los conceptos que crea ese usuario.

El campo de inicial y final, permite establecer un rango para que un usuario pueda ver y editar la información de varios ámbitos.

Ejemplo: si un usuario tiene ámbito nº 100 y otro 101 (habitualmente dos contratas separadas para un servicio), el primero no podrá ni siquiera ver los bienes de inventario, espacios, carpetas, etc. marcado con el ámbito 101, y viceversa. En cambio un usuario sin nº de ámbito, con inicial=100 y final=102 (habitualmente los técnicos del ayuntamiento que han solicitado el servicio), podrá ver y/o editar (en función de sus restricciones), la información de ambos ámbitos, y además los conceptos que cree ese usuario (como avisos, por ejemplo) al no tener ámbito, serán visibles por ambas contratas.