Tutor de usuarios y permisos

Tutor de usuarios y permisos
Página 1 de 9
Índice
Introducción ..................................................................................................................................................................... 2
Toolbar Cajero ............................................................................................................................................................... 2
Toolbar Comercial.......................................................................................................................................................... 2
Toolbar Administrador.................................................................................................................................................... 2
Proyecto de datos............................................................................................................................................................ 3
Tablas ............................................................................................................................................................................ 3
Grupos de usuarios .................................................................................................................................................... 3
Usuarios ..................................................................................................................................................................... 4
Variables globales.......................................................................................................................................................... 4
Proyecto de aplicación.................................................................................................................................................... 4
Función RECALCULAR_PERMISOS ............................................................................................................................ 4
Comprobación de permisos al ejecutar la instancia ...................................................................................................... 6
Formulario principal: PRINCIPAL ............................................................................................................................... 8
Otros puntos donde se recalculan los permisos ............................................................................................................ 8
Ejecutando el proyecto ................................................................................................................................................... 9
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 2 de 9
Introducción
Este tutor es un ejemplo de cómo condicionar el acceso a determinadas opciones de una aplicación.
Vamos a diseñar un proyecto en el que queremos controlar tres perfiles de usuario distintos:
▪ Usuarios administradores.
▪ Usuarios comerciales.
▪ Usuarios de caja.
Se crearán tantas toolbars como grupos de usuarios queremos controlar, y cada una de ellas contendrá las acciones
disponibles para cada grupo de usuarios.
En este ejemplo solamente trabajaremos con toolbars y acciones. No hemos considerado necesario trabajar también
con menús porque la operativa para ocultar/mostrar, activar/desactivar es idéntica que a la de las toolbars.
A continuación explicaremos las toolbars que hemos diseñado.
Toolbar Cajero
Se trata de una toolbar que incluye una única acción. Esta toolbar será habilitada/deshabilitada y visible/ocultada en su
totalidad.
Toolbar Comercial
Se trata de una toolbar que incluye tres acciones. Esta toolbar será habilitada/deshabilitada y visible/ocultada en su
totalidad.
Toolbar Administrador
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 3 de 9
Se trata de una toolbar que incluye tres acciones. Esta toolbar también será habilitada/deshabilitada y visible/ocultada en
su totalidad, pero además, se podrá configurar de modo independiente la actividad o no de la acción llamada Súper
administrador. Es decir, que un usuario podrá tener visible y habilitada esta toolbar y pero deshabilitada la acción Súper
administrador:
Todas las acciones de las toolbars son no funcionales, es decir, que no ejecutan nada, salvo las acciones Grupos y
Usuarios de esta última toolbar que lo que harán será disparar sendas búsquedas.
Proyecto de datos
Para que en tiempo de ejecución podamos establecer los permisos de acceso a los distintos usuarios de la aplicación
hemos creado un proyecto de datos que contiene los siguientes objetos:
Tablas
Grupos de usuarios
Se trata de la tabla donde podremos configurar los permisos de acceso a las distintas toolbars. Esta tabla contiene,
además de los campos ID y NAME, tres campos de tipo booleano, uno por cada toolbar, que serán usados para saber si
ese grupo de usuarios tendrá acceso o no a cada una de las toolbars. Estos son:
ACC_OPC_ADMIN (Toolbar Administrador).
ACC_OPC_COMERCIAL (Toolbar Comercial).
ACC_OPC_CAJERO (Toolbar Cajero).
Si el campo correspondiente a una toolbar es igual a 1, la toolbar estará disponible para los usuarios que pertenezcan a
ese grupo, pero si es igual a 0, no.
La tabla también incluye un campo enlazado a tabla estática llamado MODO_ACCION_NO_ACCESIBLE. Dicha tabla
estática contiene dos registros:
1.
2.
Desactivar toolbars no marcadas
Deasctivar y ocultar toolbars no marcadas
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 4 de 9
Esto nos permitirá configurar en un grupo de usuarios qué se hará si no tiene acceso a una toolbar concreta,
deshabilitarla o deshabilitarla y ocultarla.
Usuarios
Se trata de una tabla donde se almacenarán los usuarios que ejecuten el proyecto. Además de los campos ID y NAME,
contiene un campo enlazado a la tabla de Grupos de usuarios y un campo booleano llamado USR_SUPER_ADMIN, que
nos permitirá configurar si el usuario es o no súper administrador.
Variables globales
Además, se han creado las siguientes variables globales:
GRUPO_ACTIVO: Variable global en memoria de tipo numérico. Contendrá el ID del grupo de usuarios al que
pertenezca el usuario que está ejecutando el proyecto.
SUPER_USR: Variable global en memoria de tipo booleano. Estará activa si el usuario que está ejecutando el proyecto
es administrador y tiene activo el campo USR_SUPER_ADMIN.
Proyecto de aplicación
Del proyecto de aplicación explicaremos aquellos objetos relativos a la evaluación de permisos y las consiguientes
acciones sobre los objetos de interfaz de la aplicación.
Función RECALCULAR_PERMISOS
Para evaluar los permisos y activar/desactivar y/o mostrar/ocultar los distintos objetos de interfaz hemos creado una
función que será llamada siempre que se necesiten recalcular los permisos (al ejecutar el proyecto, al cambiar las
propiedades del usuario en curso, etc.).
Tiene las propiedades siguientes:
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 5 de 9
La función tiene un único parámetro, llamado GRUPO, de tipo numérico, que se corresponderá con el grupo de usuarios
al que pertenezca el usuario en curso.
Su contenido es:
La propia función incluye comentarios que explican su funcionamiento.
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 6 de 9
A grandes rasgos lo que hace es leer la ficha correspondiente al grupo de usuarios pasado como parámetro y en función
de si están activados o no los campos booleanos de la misma y del dato seleccionado en el campo enlazado a la tabla
estática, usando los comandos de interfaz Interfaz: Mostrar/Interfaz: Ocultar, Interfaz: Habilitar/Interfaz: Deshabilitar
muestra/oculta y/o habilita/deshabilita las toolbars correspondientes.
En el caso de que la variable global SUPER_USR sea igual a 1 y el campo del grupo de usuarios ACC_OPC_ADMIN sea
también igual a 1, se activará la acción "Súper usuario" de la toolbar Administrador con el comando de instrucción de
proceso Interfaz: Habilitar acción.
En lugar de programar la función pasándole un único parámetro (el ID del grupo de usuarios) podríamos haberla
programado declarando tantos parámetros como toolbars y opciones necesitemos controlar.
Comprobación de permisos al ejecutar la instancia
Al inicializarse el marco AUTOEXEC se ejecuta un evento que hace lo siguiente:
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 7 de 9
En primer lugar comprueba si hay datos en la tabla de Grupos de usuarios; si no los hay crea los siguientes registros:
Administradores, Comerciales, Cajeros e Invitados.
A continuación se comprueba si el usuario que ha ejecutado la instancia existe en la tabla de Usuarios. Si no existe lo
crea. Y lo asigna al grupo 1 (Administradores).
Una vez localizado o creado el usuario se guarda en la variable global GRUPO_ACTIVO el ID del grupo al que pertenece
y la variable global SUPER_USR con el valor del campo USR_SUPER_ADMIN del usuario.
Las toolbars no se gestionan en este evento dado que éstas son creadas después de su ejecución. Lo que hacemos es
gestionarlas desde el formulario principal asociado a este marco AUTOEXEC.
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 8 de 9
Formulario principal: PRINCIPAL
Se trata de un formulario sin origen, cuyo identificador es PRINCIPAL y que hemos asociado como formulario principal
en las propiedades del marco AUTOEXEC. Este formulario dispara un evento al inicializarse, evento que hace una
llamada a la función RECALCULAR_PERMISOS:
Otros puntos donde se recalculan los permisos
Durante la ejecución del proyecto hay dos momentos en los que han de recalcularse los permisos: Al modificar las
propiedades del usuario que está ejecutando la instancia (cambiar el grupo, activar/desactivar la opción Usuario súperadministrador) o al cambiar las propiedades del grupo de usuarios asociado al usuario que está ejecutando la instancia.
En el formulario del usuario el botón "Aceptar" lo que hace es disparar el siguiente evento:
El evento realiza las comprobaciones pertinentes y, en caso necesario, llama a la función que activa/desactiva, muestra/
oculta las toolbars del marco.
La rejilla asociada a la tabla de Grupos de usuarios tiene asociado el siguiente evento de interfaz que se disparará al
hacer doble clic sobre un elemento de la misma:
La modificación de la ficha de grupo de usuarios la hemos hecho de este modo para que la función sea llamada una vez
guardados los cambios realizados en la misma en el disco.
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción
Tutor de usuarios y permisos
Página 9 de 9
Ejecutando el proyecto
Al ejecutar el proyecto se presenta un formulario que contiene una rejilla de grupos de usuarios y otra de usuarios. A
través de esta rejilla podremos modificar dinámicamente los permisos, por ejemplo, editando el grupo al que pertenece el
usuario actual y modificando los permisos, o bien, editando la ficha del usuario actual y cambiarle el grupo asignado o el
valor del campo Súper-administrador. Así podremos ver como se ocultan/muestran, desactivan/activan las distintas
toolbars y acciones del proyecto.
Pol. Ind. A Granxa, Edificio vCenter
Rúa D, esquina paralela 3
36400 Porriño (Pontevedra)
España
Telf. (+34) 902 36 63 82
[email protected]
velneo.es
Velneo, S.A. C.I.F. A-36494706. Inscrita en el Registro Mercantil de Pontevedra, al Tomo 3085, Libro 3085, Folio 90, Hoja PO-37578, primera inscripción