kullanıcı yetkilendirme hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
kullanıcı yetkilendirme hakkında
S.A. Arkadaşlar.. Paylaşımlarınız için teşekkürler emeğinize yüreginize sağlık...
Bir sorum olacak.. Bir proje üzerinde calisiyorum firebir vt kullanarak kullanıcı adında bir table olusturdum bur kullanıcıadı ve sıfre diye iki alan var program calistiginda kullanıcısını secip sifresini giriyor dogru ise anamenu acılıyor
anamenude garanti servis cari gibi butonlarım var sormak istedigim ve yapmak istedigim sudur ... lks programı gibi kullanıcılara yetki vermek istiyorum örnegin ali kullanıcısı garanti ve servis butonlarını kullansın mehmet de sadece cari butonunu kullansın.. formda arkadaslarımız firebird üzerinde yetkileri, role olaylarını konusmuslar.
ama delphi üzerinde kod ile yapmak istiyorum, cozum olarak ne önerirsiniz.. yapmıs oldugunuz ornekler varsa fikir olarak yardımcı olabilirseniz cok sevinirim.
Allaha (cc) emanet olun arkadaslar
Bir sorum olacak.. Bir proje üzerinde calisiyorum firebir vt kullanarak kullanıcı adında bir table olusturdum bur kullanıcıadı ve sıfre diye iki alan var program calistiginda kullanıcısını secip sifresini giriyor dogru ise anamenu acılıyor
anamenude garanti servis cari gibi butonlarım var sormak istedigim ve yapmak istedigim sudur ... lks programı gibi kullanıcılara yetki vermek istiyorum örnegin ali kullanıcısı garanti ve servis butonlarını kullansın mehmet de sadece cari butonunu kullansın.. formda arkadaslarımız firebird üzerinde yetkileri, role olaylarını konusmuslar.
ama delphi üzerinde kod ile yapmak istiyorum, cozum olarak ne önerirsiniz.. yapmıs oldugunuz ornekler varsa fikir olarak yardımcı olabilirseniz cok sevinirim.
Allaha (cc) emanet olun arkadaslar
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
yani tahminime göre mantık şu şekilde
kullanıcı ahmet
sifre 123
cari 1
stok 1
cek 0
senet 0
örnegin cari butonunun altı
if kullanıcı.assintrin = ahmet then
begin
if cari.assintring = 1 then cari.show else showmessage (yetkiniz yok)
end;
gibi mi ???? benim aklıma böyle bir şey geliyor ama 20 kullanıdüşünürsek her buton altına if then else yazmaktan daha kolay bir yol var diye düşünüyorum ama mantıgını çözemedim bana .. bunun mantıgını veya örneklerseniz cok sevinicem
kullanıcı ahmet
sifre 123
cari 1
stok 1
cek 0
senet 0
örnegin cari butonunun altı
if kullanıcı.assintrin = ahmet then
begin
if cari.assintring = 1 then cari.show else showmessage (yetkiniz yok)
end;
gibi mi ???? benim aklıma böyle bir şey geliyor ama 20 kullanıdüşünürsek her buton altına if then else yazmaktan daha kolay bir yol var diye düşünüyorum ama mantıgını çözemedim bana .. bunun mantıgını veya örneklerseniz cok sevinicem
Şimdi belki daha kolay ve güzel yöntemleri vardır belki ilkel bir yöntem kullanıyorum belki ama ben şu şekilde yapıyorum.
Öncelikle bir tane User adında bir tablo oluşturuyorum.İçine de şu fieldleri açıyorum.
Sonra kişi kullanıcı tanımlarken bu alanlara Username kullanıcı adını, Passworde parolasını, Stok fieldine de kullanıcının yetkisi varmı babında Evet yada Hayır yazdırtıyorum.(Combodan seçtirtmek suretiyle) diğer bölümlere de Evet Yada Hayır mantığı.
Sonra Programın ana formunda ne kadar bölüm varsa o kadar global olarak Boolean değişken tanımlıyorum.
Login formunda da hangi kullanıcı adıyla giriş yapıldıysa bu kullanıcı adına kayıtlı bulunan bu izin fieldlerini çekerek eğer Evet yazıyorsa onunla ilgili boolean değişkene True değerini, eğer hayırsa o hayırla ilgili boolean değişkene False değerini atıyorum yada zaten false olarak set ettiğimden hiçbir şey yapmıyorum.Sonrada ana formum açılırken de oluşturduğum yetki procedurunu çağırıyorum.
Kolay Gelsin.
Öncelikle bir tane User adında bir tablo oluşturuyorum.İçine de şu fieldleri açıyorum.
Kod: Tümünü seç
Id integer
Username varchar(20)
Password varchar(20)
Stok Varchar(5)
Cari Varchar(5)
….. Varchar(5)
….. Varchar(5)
Sonra Programın ana formunda ne kadar bölüm varsa o kadar global olarak Boolean değişken tanımlıyorum.
Kod: Tümünü seç
StokGirisIzni:Boolean=False;
CariGirisIzni:Boolean=False;
…..GirisIzni:Boolean=False;
……GirisIzni:Boolean=False;
Login formunda da hangi kullanıcı adıyla giriş yapıldıysa bu kullanıcı adına kayıtlı bulunan bu izin fieldlerini çekerek eğer Evet yazıyorsa onunla ilgili boolean değişkene True değerini, eğer hayırsa o hayırla ilgili boolean değişkene False değerini atıyorum yada zaten false olarak set ettiğimden hiçbir şey yapmıyorum.Sonrada ana formum açılırken de oluşturduğum yetki procedurunu çağırıyorum.
Kod: Tümünü seç
Procedure yetki;
Begin
If stokGirisIzni=False then
Begin
Stoklailgilibuton.visible=False;
End;
……………
……………
……………
End;
anlatılana gore yaptıgınız işlemin mantıgını anladım eger basara bilirsem cok güzel olacak ... yanlız tedirginliğimde var
bu işleme ait bileşenler va diyorsunuz bu bileşenler neler veya download varmı ..
arkadaslar verdiginiz bilgiler için teşşekkür ederim hakkınızı helal edin..
Allah (cc) razı olsun
emeğinize yüreginize sağlık
bu işleme ait bileşenler va diyorsunuz bu bileşenler neler veya download varmı ..
arkadaslar verdiginiz bilgiler için teşşekkür ederim hakkınızı helal edin..
Allah (cc) razı olsun
emeğinize yüreginize sağlık
Ben yetki alanlarını Kullanıcı şifre yazdıktan sonra belirliyorum.Girişte şifre yazılır tamam düğmesine basılır. Yetkilendirme ile ilgili tüm işleri haleder çıkarım.
Kod: Tümünü seç
if edit2.Text=sifre then
begin
close;
CapsLockAc;
//stok
if ibquery1stok.AsInteger=1 then ana.stokw.Visible:=false;
if ibquery1stok_kart_ekle.AsInteger=1 then begin stok.SpeedButton1.Enabled:=false; ana.Satis_yeni_kart.Visible:=false; end;
if ibquery1stok_kart_sil.AsInteger=1 then stok.SpeedButton2.Enabled:=false;
if ibquery1stok_kart_duzenle.AsInteger=1 then
begin
stok.SpeedButton3.Enabled:=false;
stok.SpeedButton12.Enabled:=false;
stok.SpeedButton5.Enabled:=false;
stok.SpeedButton4.Enabled:=false;
stok.SpeedButton16.Enabled:=false;
end;
if ibquery1stok.AsInteger=1 then stok.SpeedButton13.Enabled:=false;
if ibquery1stok_barkod.AsInteger=1 then stok.SpeedButton11.Enabled:=false;
//MUSTERİ
if ibquery1musteri.AsInteger=1 then ana.musteriw.Visible:=false;
if ibquery1musteri_cari_sil.AsInteger=1 then musteri.SpeedButton12.Enabled:=false;
if ibquery1musteri_ahesap.AsInteger=1 then musteri.SpeedButton9.Enabled:=false;
if ibquery1musteri_taksit.AsInteger=1 then musteri.SpeedButton10.Enabled:=false;
if ibquery1musteri_cek.AsInteger=1 then begin musteri.SpeedButton11.Enabled:=false; ana.cek.Visible:=false; end;
if ibquery1musteri_kayit_sil.AsInteger=1 then musteri.SpeedButton2.Enabled:=false;
if ibquery1musteri_kayit_ekle.AsInteger=1 then begin musteri.SpeedButton1.Enabled:=false; ana.satis_yeni_must.Visible:=false; end;
if ibquery1musteri_kayit_duzenle.AsInteger=1 then musteri.SpeedButton8.Enabled:=false;
//fatura
if ibquery1fatura.AsInteger=1 then ana.faturaw.Visible:=false;
if ibquery1fatura_kesme.AsInteger=1 then fatura.SpeedButton1.Enabled:=false;
if ibquery1fatura_silme.AsInteger=1 then fatura.SpeedButton4.Enabled:=false;
if ibquery1fatura_yazdirma.AsInteger=1 then fatura.SpeedButton3.Enabled:=false;
if ibquery1fatura_ayar.AsInteger=1 then fatura.SpeedButton2.Enabled:=false;
end
else
begin
showmessage('Yanlış Şifre');
edit2.SetFocus;
edit2.SelectAll;
end;
@sadettinpolat'ın verdiği bağlantıya bakmış olsaydın görürdün.kayipgemi yazdı:bu işleme ait bileşenler va diyorsunuz bu bileşenler neler veya download varmı ..
http://sourceforge.net/projects/usercontrol adresinde istediğin bileşeni bulabilirsin.