Tips menerapkan manajemen izin di DELPHI
Saat menggunakan DELPHI untuk mengkompilasi beberapa sistem aplikasi, seringkali diperlukan untuk memberikan izin yang berbeda kepada pengguna yang berbeda, dan sistem yang berbeda memiliki metode alokasi izin yang berbeda. Jika izin diberikan kepada setiap pengguna dalam program, tidak hanya itu membuat persiapan program sangat merepotkan, dan tidak kondusif bagi manajemen! Penulis baru-baru ini menemukan metode yang menurut saya lebih baik, dan saya ingin membaginya dengan Anda. Saya harap Anda dapat memberi saya lebih banyak saran!
Di banyak sistem, izin biasanya dibagi menjadi beberapa tingkatan. Operasi yang dapat dilakukan oleh pengguna di setiap tingkat berbeda, dan metode untuk mencapai fungsi ini umumnya adalah dengan mengizinkan pengguna dengan izin berbeda untuk melihat menu berbeda. Sederhananya, menu ini tidak terlihat oleh pengguna yang tidak memiliki izin tertentu! Untuk mencapai kendali ini, pemrogram sering kali harus menghabiskan banyak waktu mengerjakan modul ini, membuang banyak waktu yang berharga!
Ide penulisnya adalah: jika kita membuat array dua dimensi, dimensi pertama mewakili menu tingkat pertama, dan dimensi kedua mewakili submenu.Setiap elemen array hanya menyimpan dua angka 0 atau 1. Seorang pengguna dengan otoritas tertentu berhubungan dengan array dua dimensi, dan array ini mewakili menu yang sesuai. Setelah memberikan izin kepada pengguna pada level tertentu, dia akan memiliki array yang sesuai. Saat login, ambil nilai setiap elemen dari array. Jika 1, menu terkait akan muncul, jika 0, menu tidak akan muncul. Metode ini tidak hanya dapat digunakan untuk klasifikasi (array pengguna pada tingkat yang sama adalah sama), tetapi juga izin dapat dibagi lagi di antara pengguna yang berbeda, selama Anda mengubah nilai yang sesuai menjadi 0 atau 1!
Gambar di atas adalah hasil dari contoh sederhana.
Berikut ini adalah bagian dari program sumbernya (ini hanyalah contoh penjelasan programnya). Untuk mempermudah, hanya terdapat satu form dan satu menu utama dalam program tersebut. Inisialisasi array M saat membuat formulir, baca nilai array saat menampilkan dan kendalikan tampilan dengan mengatur properti Enabled pada menu atau True atau False pada properti Visible! !
var
Formulir1: TForm1;
m:array[0..1,0..4] bilangan bulat; //Tentukan array yang disimpan
i,j:integer;//Mendefinisikan variabel loop
pelaksanaan
{$R *.dfm}
Prosedur TForm1.FormShow(Pengirim: TObject);
mulai //Membaca angka dan mengontrol tampilan menu
untuk i:=Rendah(m) hingga Tinggi(m) lakukan
untuk j:=Rendah(m[i]) hingga Tinggi(m[i]) dimulai
jika m[i][j]=0 maka MainMenu1.Items[i].Items[j].Enabled:=false
else MainMenu1.Items[i].Items[j].Enabled:=true;
akhir;
akhir;
prosedur TForm1.FormCreate(Pengirim: TObject);
mulai //Berikut inisialisasi
k:=0;
untuk i:=Rendah(m) hingga Tinggi(m) lakukan
untuk j:=Rendah(m[i]) hingga Tinggi(m[i]) lakukan
jika (j mod 2)=0 maka m[i][j]:=1
lain m[i][j]:=0;
akhir;