DELPHI에서 권한 관리를 구현하는 팁
DELPHI를 사용하여 일부 응용 시스템을 컴파일할 때 사용자마다 다른 권한을 부여해야 하는 경우가 많으며, 시스템마다 권한 할당 방법이 다릅니다. 프로그램에서 각 사용자에게 권한을 할당하면 프로그램을 준비할 수 있을 뿐만 아니라 매우 번거롭고 관리에도 도움이 되지 않습니다! 최근에 작가님이 제가 생각하는 더 나은 방법을 생각해냈는데, 더 많은 조언을 해주시면 좋겠습니다!
많은 시스템에서 권한은 일반적으로 여러 수준으로 나뉩니다. 각 수준의 사용자가 수행할 수 있는 작업은 다르며, 이 기능을 수행하는 방법은 일반적으로 서로 다른 권한을 가진 사용자가 서로 다른 메뉴를 볼 수 있도록 허용하는 것입니다. 간단히 말해서, 이 메뉴는 특정 권한이 없는 사용자에게는 보이지 않습니다! 이러한 제어를 달성하기 위해 프로그래머는 종종 이 모듈 작업에 많은 시간을 소비하여 귀중한 시간을 낭비해야 합니다!
저자의 아이디어는 다음과 같습니다. 2차원 배열을 설정하면 첫 번째 차원은 첫 번째 수준 메뉴를 나타내고 두 번째 차원은 하위 메뉴를 나타냅니다. 각 배열 요소는 두 개의 숫자 0 또는 1만 저장합니다. 특정 권한은 A 2차원 배열에 해당하며, 이 배열은 해당 메뉴를 나타냅니다. 특정 수준의 사용자에게 권한을 할당하면 해당 사용자는 해당 배열을 갖게 됩니다. 로그인 시 배열의 각 요소 값을 가져옵니다. 1이면 해당 메뉴가 나타나고, 0이면 메뉴가 나타나지 않습니다. 이 방법은 분류에 사용할 수 있을 뿐만 아니라(동일한 수준의 사용자 배열은 동일함) 해당 값을 0 또는 1로 수정하기만 하면 권한을 여러 사용자 간에 세분화할 수도 있습니다!
위의 내용은 간단한 예제의 결과입니다.
다음은 소스 프로그램의 일부입니다(이것은 단지 설명적인 예제 프로그램입니다). 단순화를 위해 프로그램에는 하나의 양식과 하나의 기본 메뉴만 있습니다. 폼 생성 시 배열 M을 초기화하고, 표시할 때 배열 값을 읽고, 메뉴의 Enabled 속성이나 Visible 속성의 True 또는 False를 설정하여 표시를 제어해보세요! !
var
Form1: TForm1;
m:array[0..1,0..4] of 정수 //저장된 배열을 정의합니다.
i,j:integer;//루프의 변수를 정의합니다.
구현
{$R *.dfm}
PROcedure TForm1.FormShow(보내는 사람: TObject);
시작 //숫자를 읽고 메뉴 표시를 제어합니다.
i:=낮음(m)에서 높음(m)까지
for j:=Low(m[i]) ~ High(m[i]) 시작
m[i][j]=0이면 MainMenu1.Items[i].Items[j].Enabled:=false
else MainMenu1.Items[i].Items[j].Enabled:=true;
끝;
끝;
절차 TForm1.FormCreate(Sender: TObject);
start //다음은 초기화입니다.
k:=0;
i:=낮음(m)에서 높음(m)까지
for j:=Low(m[i]) ~ High(m[i]) do
if (j mod 2)=0이면 m[i][j]:=1
else m[i][j]:=0;
끝;