kullanıcı yetkilendirme hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

kullanıcı yetkilendirme hakkında

Mesaj gönderen kayipgemi »

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
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

bende sadece kullanıcı adı ve şifre yok yanında yetkilendirme yapacağım alanlarda var. garanti, servis ne gerekiyorsa.

açılışta şifre girip onaylandıktan sonra yetkilendirme alanlarına bakıyorum kullanıcıya verilen yetkilere göre buttonları visible veya enable özelliklerini false yapıyorum.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

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ı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Yetkilendirme ile ilgili bileşenler var. @Freeman in de böyle bir bileşen çalışması var diye hatırlıyorum :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Ş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.

Kod: Tümünü seç

Id				integer
Username			                varchar(20)
Password			                varchar(20)
Stok				Varchar(5)
Cari				Varchar(5)
…..				Varchar(5)
…..				Varchar(5)
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.

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;
Kolay Gelsin.
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

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
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

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;
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

kayipgemi yazdı:bu işleme ait bileşenler va diyorsunuz bu bileşenler neler veya download varmı ..
@sadettinpolat'ın verdiği bağlantıya bakmış olsaydın görürdün.
http://sourceforge.net/projects/usercontrol adresinde istediğin bileşeni bulabilirsin.
Cevapla