Consejos para implementar la gestión de permisos en DELPHI
Cuando se utiliza DELPHI para compilar algunos sistemas de aplicaciones, a menudo es necesario otorgar diferentes permisos a diferentes usuarios, y diferentes sistemas tienen diferentes métodos de asignación de permisos. Si se asignan permisos a cada usuario en el programa, no solo hace la preparación del programa. ¡Muy problemático y no favorece la gestión! Al autor se le ocurrió recientemente un método que creo que es mejor y me gustaría compartirlo con ustedes. ¡Espero que puedan darme más consejos!
En muchos sistemas, los permisos suelen dividirse en varios niveles. Las operaciones que pueden realizar los usuarios de cada nivel son diferentes y el método para lograr esta función generalmente es permitir que los usuarios con diferentes permisos vean diferentes menús. En pocas palabras, ¡este menú es invisible para los usuarios que no tienen ciertos permisos! Para lograr este control, los programadores a menudo tienen que dedicar mucho tiempo a trabajar en este módulo, ¡perdiendo un tiempo precioso!
La idea del autor es: si configuramos una matriz bidimensional, la primera dimensión representa el menú de primer nivel y la segunda dimensión representa el submenú. Cada elemento de la matriz solo almacena los dos números 0 o 1. Un usuario con. una determinada autoridad corresponde a una matriz bidimensional, y esta matriz representa el menú correspondiente. Después de asignar permisos a un usuario de cierto nivel, tendrá la matriz correspondiente. Al iniciar sesión, tome el valor de cada elemento de la matriz. Si es 1, aparecerá el menú correspondiente, si es 0, el menú no aparecerá. Este método no solo se puede usar para clasificación (las matrices de usuarios en el mismo nivel son las mismas), sino que también los permisos se pueden subdividir entre diferentes usuarios, siempre que modifique el valor correspondiente a 0 o 1.
Lo anterior es el resultado de un ejemplo sencillo.
Lo siguiente es parte del programa fuente (este es solo un programa de ejemplo explicativo). Para simplificar, solo hay un formulario y un menú principal en el programa. Inicialice la matriz M al crear el formulario, lea el valor de la matriz al mostrar y controle la visualización configurando la propiedad Activado del menú o Verdadero o Falso de la propiedad Visible. !
var
Formulario1: TForm1;
m:array[0..1,0..4] of integer; //Definir la matriz almacenada
i,j:integer;//Definir las variables del bucle
implementación
{$R *.dfm}
Procedimiento TForm1.FormShow(Remitente: TObject);
comenzar //Leer los números y controlar la visualización del menú
para i:=Bajo(m) a Alto(m) hacer
para j:=Bajo(m[i]) a Alto(m[i]) comience
si m[i][j]=0 entonces MainMenu1.Items[i].Items[j].Enabled:=false
else MainMenu1.Items[i].Items[j].Enabled:=true;
fin;
fin;
procedimiento TForm1.FormCreate(Remitente: TObject);
comenzar // Lo siguiente es la inicialización
k:=0;
para i:=Bajo(m) a Alto(m) hacer
para j:=Bajo(m[i]) a Alto(m[i]) hacer
si (j mod 2)=0 entonces m[i][j]:=1
más m[i][j]:=0;
fin;