martes, 30 de diciembre de 2014

Gestión de usuarios Open Source en Lazarus

Es un proyecto en guithub.com, y os lo podeis descargar con alguna aplicación git para clonarlo desde

o podeis visitarlo y bajarlo (boton DOWNLOAD ZIP) desde aquí

Estas son algunas de sus pantallas:










De momento y para comprobar su uso tiene dos pequeños mantenimientos generales para comprobar las funciones del usuario.

Los registros nunca se borran, sino que se marcan como borrados. De tal manera que en cualquier momento se pueden  consultar o volver a dar de alta. Esto es una ventaja para las tablas que tengan foreignkey.

Hablando de tablas, de momento sólo funciona con MySQL. Dentro del proyecto hay una carpeta SQL con la última versión de las tablas y algunos registros de ejemplo.

En cualquier momento, como el usuario se identifica con una contraseña, cualquier registro cuando se crea, se modifica, se borra ... la aplicación lleva un registro de los continuos cambios que se realizan sobre él. En cualquiera de los mantenimientos debajo de los Grid y al lado del navigator, tenéis un botón de color azul que llamará al histórico del registro. En la pantalla que aparece vemos los últimos cambios realizados al registro (parte de la izquierda) y en la derecha tenemos el histórico del mismo.

En la carpeta INI del proyecto, configuramos los datos de conexión con la BD y hay un parámetro que nos permite decirle a la aplicación cuanto tiempo debe de esperar para preguntar otra vez por la contraseña en caso de no usar la aplicación.

Esto es útil por si el usuario se marcha del ordenador dejando abierta la aplicación. Si el usuario tiene todos los permisos, cuando la vuelva a preguntar por la contraseña nos dará tres intentos (siempre son tres intentos). Si no introduce la contraseña correcta, se saldrá de la aplicación. Si el usuario ya se identificó, volverá a preguntar por el mismo usuario (su contraseña).

Si el usuario no tiene todos los privilegios, al cabo del tiempo estipulado en el fichero INI, la aplicación se cerrará. 

Un usuario que no tiene permisos de super usuario (todos), hay que darle permisos para cada módulo. Un módulo puede tener permisos para INSERTAR, MODIFICAR, IMPRIMIR u OTROS(normalmente sólo para consulta). Si un usuario entra en un módulo que sólo tenga permisos de INSERTAR, lógicamente sólo permitirá esta opción.

Cuando el usuario se identifica por primera vez, su menú se adaptará a sus permisos, es decir, sólo se visualizarán aquellas opciones que tenga permisos.

Cada mantenimiento tiene un sistema de filtros, configurables por el usuario. Es decir, que el usuario podrá filtrar por los campos que quiera y usando en la SELECT oportuna la combinación de OR y AND que vea oportuna.

Si uno de esos campos por los que quiere filtrar, es un campo foreign key con otra tabla aparecerá a su derecha un botón para enlazar con el mantenimiento de la otra tabla ligada y así poder elegir el registro en concreto que quiere para esa id (foreign key) a filtrar.

Ahora estoy trabajando en la posibilidad de crear un fichero .log en el que se guarden todos los errores de la aplicación.

Bueno, que más deciros no sabría ahora mismo. Pero si que os pediría que si le veis algún fallo o alguna necesidad al mismo proyecto, pues que lo publiquéis en este mismo blog.