Ya he explicado, esto en post anteriores, pero creo que es importante para el tutorial, así que nuevamente, expongo mi sistema de acceso a las diferentes partes del programa, si recordáis en la tabla usuarios (que por cierto, se me colo una S de más y se quedo como ususarios
) tenemos la estructura
Cita:
CREATE TABLE USUSARIOS (
ID INTEGER NOT NULL,
CLAVE T20 /* T20 = VARCHAR(20) */,
USUARIO T20 /* T20 = VARCHAR(20) */,
NIVEL INTEGER,
NOMBRE T80 /* T80 = VARCHAR(80) */
);
|
en ella existen dos apartados fundamentales, para el acceso, ojo todos son importantes, pero estos dos fundamentales, que son CLAVE y NIVEL, como es lógico, solicito el usuario y la clave, en un form de acceso, compruebo y si esta ok, cargo una serie de variables locales, con el usuario, la clave y el nivel, después la llamada a los diferentes apartados la hago con la función ACCESO, donde comprobamos e, nivel, con el que ponemos al apartado, todo desde un ActionList, para no tener que estar repitiendo código., si tenemos que volver a solicitar la clave uso un inputbox con la peculiaridad, de poner los caracteres como asteriscos, para ello uso las instrucciones que a parece en el procedure TFMenu.InputBoxSetPasswordChar(var Msg: TMessage);
De esta manera, si nos vamos a tomar un café y un compañero quiere acceder a un apartado, al que no tiene nivel y es delicado, aunque este activo el nivel de usuario, le solicitara la clave para acceder, con lo que se quedara con las ganas, creo que unas de las ventajas de este sistema es el ahorro de código, en apartados de seguridad.
Yo suelo usar el siguiente sistema para valorar el nivel de usuario
0...5 los valoro como acceso de visitante
6...7 Introductor de datos
8 Persona de mucha confianza
9 Acceso total
Claro esta que si tienes nivel 7 en vez de 6 puedes acceder a más apartados, o ver partes dentro de un apartado, que de otra manera no aparecen. Los apartados, que por tema de datos, o seguridad, siempre solicito clave de acceso e incluso en algún programa he usado la clave de acceso con un sistema de clave por fecha o clave diferencial.
Espero no haberos liado.