PDA

Ver la Versión Completa : Manejo de Roles desde una tabla


Edwardfeliz
19-04-2016, 05:01:33
Saludos, explico mi pregunta,

Tengo una base de datos en Access, donde tengo una tabla con el nombre roles, en la cual tengo un campo donde están contendidas las zonas del programa, ejemplo: "Nueva factura", "Anular Factura", Etc. En otro campo el dice administrador, otro Cajero, Otro Vendedor, etc, estos campos son de tipo Marcado/no Marcado, para indicar si el usuario tendrá permiso a esa área. (Le anexare la imagen).

La idea es al inicio del programa, cuando la persona ingrese su usuario y contraseña se haga una verificación de Rol, ejemplo: si en la columna de cajero esta desmarcado "Anular Factura" que al verificar el Rol automáticamente se desactive el botón de Anular facturas.

Componentes ADO, Base de Datos en Acces.
Delphi 7.

kapcomx
19-04-2016, 06:14:57
En el onshow de tu formulario puedes hacer una consulta que te devuelva los registros de la tabla que corresponden a tu usuario.
luego hacer un ciclo

datasource.first;

while not(datasource.eof) do
begin


if (datasourcetucampoanularfactura.value) = false then
btnanularfactura.enabled := false;


..............
...........
.....y asi con los demas




datasource.next;
end;

Neftali [Germán.Estévez]
19-04-2016, 11:50:31
Había un paquete de componentes gratuitos para Delphi llamado "User control package" que gestionaba el acceso de usuarios a una aplicación.
Tal vez te valdría la pena ver cómo trabajan, los ejemplos,...

Aunque no vayas a usarlos, para tener idea de cómo hacerlo.
Aquí tienes acceso (https://sourceforge.net/projects/usercontrol/files/?source=navbar)a todos los ficheros, demos, fuentes,...

http://s26.postimg.org/n0n6219c9/test.png

La gestión de usuarios, ya te ofrece las opciones para configurar, por ejemplo, los menús con los accesos de cada uno.

Edwardfeliz
19-04-2016, 15:09:29
En el onshow de tu formulario puedes hacer una consulta que te devuelva los registros de la tabla que corresponden a tu usuario.
luego hacer un ciclo

datasource.first;

while not(datasource.eof) do
begin


if (datasourcetucampoanularfactura.value) = false then
btnanularfactura.enabled := false;


..............
...........
.....y asi con los demas




datasource.next;
end;

Y como saba en cual zona especifica a de habilitar o Deshabilitar?
ahi tomas en cuenta solamente un campo.

Edwardfeliz
19-04-2016, 22:56:38
Había un paquete de componentes gratuitos para Delphi llamado "User control package" que gestionaba el acceso de usuarios a una aplicación.
Tal vez te valdría la pena ver cómo trabajan, los ejemplos,...

Aunque no vayas a usarlos, para tener idea de cómo hacerlo.
Aquí tienes acceso (https://sourceforge.net/projects/usercontrol/files/?source=navbar)a todos los ficheros, demos, fuentes,...

http://s26.postimg.org/n0n6219c9/test.png

La gestión de usuarios, ya te ofrece las opciones para configurar, por ejemplo, los menús con los accesos de cada uno.

Me das una solucion mas "manual" con para hacerlo con un Query y comandos SQL?