Dicas para implementar o gerenciamento de permissões no DELPHI
Ao usar DELPHI para compilar alguns sistemas aplicativos, muitas vezes é necessário conceder permissões diferentes para usuários diferentes, e sistemas diferentes têm métodos de alocação de permissões diferentes. Se as permissões forem atribuídas a cada usuário no programa, não apenas a preparação do programa será feita. muito problemático e não favorece o gerenciamento! O autor recentemente criou um método que considero melhor e gostaria de compartilhá-lo com você. Espero que possa me dar mais conselhos!
Em muitos sistemas, as permissões são geralmente divididas em vários níveis. As operações que os usuários em cada nível podem realizar são diferentes, e o método para realizar essa função geralmente é permitir que usuários com permissões diferentes vejam menus diferentes. Simplificando, este menu é invisível para usuários que não possuem determinadas permissões! Para conseguir esse controle, os programadores muitas vezes precisam gastar muito tempo trabalhando neste módulo, desperdiçando muito tempo precioso!
A ideia do autor é: se configurarmos um array bidimensional, a primeira dimensão representa o menu de primeiro nível e a segunda dimensão representa o submenu. Cada elemento do array armazena apenas os dois números 0 ou 1. Um usuário com. uma determinada autoridade corresponde a uma matriz bidimensional A, e esta matriz representa o menu correspondente. Após atribuir permissões a um usuário de um determinado nível, ele terá um array correspondente. Ao fazer login, pegue o valor de cada elemento do array. Se for 1, aparecerá o menu correspondente, se for 0, o menu não aparecerá. Este método pode ser usado não apenas para classificação (as matrizes de usuários no mesmo nível são iguais), mas também as permissões podem ser subdivididas entre diferentes usuários, desde que você modifique o valor correspondente para 0 ou 1!
O texto acima é o resultado de um exemplo simples.
O seguinte faz parte do programa fonte (este é apenas um exemplo de programa explicativo, existe apenas um formulário e um menu principal no programa). Inicialize o array M ao criar o formulário, leia o valor do array ao exibir e controle a exibição configurando a propriedade Enabled do menu ou True ou False da propriedade Visible! !
var
Formulário1: TForm1;
m:array[0..1,0..4] of inteiro; //Define o array armazenado;
i,j:integer;//Define as variáveis do loop
implementação
{$R *.dfm}
Procedimento TForm1.FormShow(Remetente: TObject);
Begin //Lê os números e controla a exibição do menu
para i:=Baixo(m) a Alto(m) faça
para j:=Low(m[i]) to High(m[i]) comece
se m[i][j]=0 então MainMenu1.Items[i].Items[j].Enabled:=false
senão MainMenu1.Items[i].Items[j].Enabled:=true;
fim;
fim;
procedimento TForm1.FormCreate(Remetente: TObject);
começar //O seguinte é a inicialização
k:=0;
para i:=Baixo(m) a Alto(m) faça
para j:=Baixo(m[i]) para Alto(m[i]) faça
se (j mod 2)=0 então m[i][j]:=1
senão m[i][j]:=0;
fim;