Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Modüllere Hak Vermek
#1
Arkadaşlar Merhaba;  Sağlıklı Günleriniz Olsun.

Yazmış olduğum uygulamada ki modüllere kullanıcı hakkı şeklinde bir işlem yapmak istiyorum yardımcı olursanız sevinirim.

Kurulum esnasın damı daha doğru olur yoksa program içerisinden mi?

Şöyle;
Button1 "Stok Bakiye Raporu" alabilsin ama 
Button2 "Stok Hareket Raporu"  hakkı olmadığı için soluk kalacak.

bu şekilde nasıl yapabilirim?

Delphi7 kullanıyorum.
Cevapla
#2
Bu tür tanımlamalar şifre yetkilendirme aşamasında yapılır. Hangi kullanıcı adı (ve şifre) hangi işlemleri yapabilir burada belirlenir. Kullanıcı adına göre menüleri disable yapmanız gerekecek. Şifre tanımlama modülünde ayrıca şifre kullanım süreleri, şifre yapıları (kaç karakter olacak, küçük büyük harf ve rakam miktarı gibi) olması gereken standartlardır. (Bak. CFR 21 part 11)
Cevapla
#3
Selamlar,
Bunu kurulum esnasında nasıl yapacaksınız bilemedim. Programın içinde yapmanız zaruri. Bunun için de her ekranın açılışında, her raporun girişinde yetki (Authorization) kontrolü yapmanız gerekir.
Ben şu şekiilde yapıyorum;
Tüm aksiyonlar için bir Permission tablom var
Id   Description                        Parent  IsActive
==== ================================== ======  ========
1    All administrator permissions      0       1
100  All authorization parameters       1       1
101  User all ops                       100     1
102  User add                           101     1
103  User edit                          101     1
104  User delete                        101     1
105  User view                          101     1
107  User group ops                     101     1
111  Group all ops                      100     1
112  Group add                          111     1
113  Group edit                         111     1
114  Group delete                       111     1
115  Group view                         111     1
131  Permission all ops                 100     1
132  Permission add                     131     1
133  Permission edit                    131     1
134  Permission delete                  131     1
135  Permission view                    131     1
Öncelikle tüm işlemler için burada birer kayıt açıyorum. Elbette bir User tablom var. Bu iki tabloyu birleştiren bir UserPermission tablosu oluşturuyorum. Bu tablo sadece UserId ve PermissionId kolonlarından ibaret. Kullanıcıya hangi hakkı vereceksem burada o kombinasyonu ekliyorum, hakkı kaldırmak için siliyorum.
Permission tablosundan gördüğünüz gibi bir de ParentId kolonu var. Bu bana bir kullanıcıya tek bir hak vererek onun alt erişim haklarını da tanımayı sağlıyor... Ayrıca benim kullandığım fazladan bir de Group tablom var. Buradan kullanıcıları bu gruplara bağlayarak bir gruba hak verdiğimde bu grupta yer alan tüm kullanıcılara da hak vermiş oluyorum. Bu sistemi tam olarak kullandığım bir Örnek program'a erişip inceleyebilirsiniz. Program biraz karmaşık gelebilir (çünkü basit bir ORM oluşturmaya çalıştım, her tablo için birer Entity class var ve bunları kullanıyorum), bu durumda yaptığım açıklamalardan kendiniz oluşturmanız lazım.
Cevapla
#4
(13-02-2021, Saat: 16:04)mustafaozpinar Adlı Kullanıcıdan Alıntı: Selamlar,
Bunu kurulum esnasında nasıl yapacaksınız bilemedim. Programın içinde yapmanız zaruri. Bunun için de her ekranın açılışında, her raporun girişinde yetki (Authorization) kontrolü yapmanız gerekir.
Ben şu şekiilde yapıyorum;
Tüm aksiyonlar için bir Permission tablom var
Id   Description                        Parent  IsActive
==== ================================== ======  ========
1    All administrator permissions      0       1
100  All authorization parameters       1       1
101  User all ops                       100     1
102  User add                           101     1
103  User edit                          101     1
104  User delete                        101     1
105  User view                          101     1
107  User group ops                     101     1
111  Group all ops                      100     1
112  Group add                          111     1
113  Group edit                         111     1
114  Group delete                       111     1
115  Group view                         111     1
131  Permission all ops                 100     1
132  Permission add                     131     1
133  Permission edit                    131     1
134  Permission delete                  131     1
135  Permission view                    131     1
Öncelikle tüm işlemler için burada birer kayıt açıyorum. Elbette bir User tablom var. Bu iki tabloyu birleştiren bir UserPermission tablosu oluşturuyorum. Bu tablo sadece UserId ve PermissionId kolonlarından ibaret. Kullanıcıya hangi hakkı vereceksem burada o kombinasyonu ekliyorum, hakkı kaldırmak için siliyorum.
Permission tablosundan gördüğünüz gibi bir de ParentId kolonu var. Bu bana bir kullanıcıya tek bir hak vererek onun alt erişim haklarını da tanımayı sağlıyor... Ayrıca benim kullandığım fazladan bir de Group tablom var. Buradan kullanıcıları bu gruplara bağlayarak bir gruba hak verdiğimde bu grupta yer alan tüm kullanıcılara da hak vermiş oluyorum. Bu sistemi tam olarak kullandığım bir Örnek program'a erişip inceleyebilirsiniz. Program biraz karmaşık gelebilir (çünkü basit bir ORM oluşturmaya çalıştım, her tablo için birer Entity class var ve bunları kullanıyorum), bu durumda yaptığım açıklamalardan kendiniz oluşturmanız lazım.

Aslında lisanslama mantığım var yani kurulumdan sonra her bilgisayar için lisansla yapıyorum ve her defasında değişmiyor sadece o bilgisayar için kalıcı kalıyor başka bilgisayara kurarsa o zaman değişiyor buradan yola çıkarak nasıl bir mantık yürütebilirim?
Cevapla
#5
Lisanslama derken neyi kastediyorsunuz anlamadım. Bulut üzerinde verileri sizin sunucunuzda tuttuğunuz, yazılım yükleterek hizmet mi satıyorsunuz, yoksa müşterinin kendi sunucularına kurulan bir SQL sunucuya tüm kullanıcılar mı bağlanıyor.
Bulutta da olsa sattığınız hizmet eğer kurumsalsa, yani, bir kurum kendisine bir firma açıp kendi kullanıcılarını da buna bağlayıp veri girmesini ve görmesini sağlıyorsa, lokalde tutulan sunucu mantığıyla benzerdir. Bu durumda da yine aynı sistemi kullanmanız gerekir. Sonuçta bulutta da olsa, her cihaz bir isimle bağlanacak sunucunuza.
Ancak şunu da belirtmem gerekir ki, her bilgisayar için lisanslama Authentication demektir, Authorization farklıdır. Lisanslanmış bir bilgisayar programa girebilir, ancak programın her kısmına girmesi engellenmek istenebilir. Bu authorization ile sağlanır.
Bununla birlikte, eğer yazılımınız kişiselse, örneğin kişisel aktivite yönetimi vs., ya da oyunlar gibi, bu durumda ancak level yönetimi, ya da kullanıcının satın aldığı hizmete göre giriş yapabilmesini sağlamanız gerekir.
Cevapla
#6
(13-02-2021, Saat: 17:28)mustafaozpinar Adlı Kullanıcıdan Alıntı: Lisanslama derken neyi kastediyorsunuz anlamadım. Bulut üzerinde verileri sizin sunucunuzda tuttuğunuz, yazılım yükleterek hizmet mi satıyorsunuz, yoksa müşterinin kendi sunucularına kurulan bir SQL sunucuya tüm kullanıcılar mı bağlanıyor.
Bulutta da olsa sattığınız hizmet eğer kurumsalsa, yani, bir kurum kendisine bir firma açıp kendi kullanıcılarını da buna bağlayıp veri girmesini ve görmesini sağlıyorsa, lokalde tutulan sunucu mantığıyla benzerdir. Bu durumda da yine aynı sistemi kullanmanız gerekir. Sonuçta bulutta da olsa, her cihaz bir isimle bağlanacak sunucunuza.
Ancak şunu da belirtmem gerekir ki, her bilgisayar için lisanslama Authentication demektir, Authorization farklıdır. Lisanslanmış bir bilgisayar programa girebilir, ancak programın her kısmına girmesi engellenmek istenebilir. Bu authorization ile sağlanır.
Bununla birlikte, eğer yazılımınız kişiselse, örneğin kişisel aktivite yönetimi vs., ya da oyunlar gibi, bu durumda ancak level yönetimi, ya da kullanıcının satın aldığı hizmete göre giriş yapabilmesini sağlamanız gerekir.

Lisanslama şöyle bir bilgisayar için kurulum yapıyorum sonra program ilk etap da demo sonrasında programın ilk girişinde lisansla diye button var ve bir anahtar ekrana geliyor o anahtara karşılık da bir seri üretiyor onu girince program lisanslanıyor. Bu Lisans anahtarı kurulu bilgisayara özel kalıyor. Şunu düşündüm lisans anahtarı ve regıstry deki lisans anahtarı eşit ise şu modüller çalışacak. Fakat bunun kodlamasını nasıl yapabilirim?
Cevapla
#7
Tutbo Power'ın OnGuard adlı bir yazılımı vardı. Ona bir göz gezdirin. Büyük olasılıkla işinizi görecektir.

Orijinal OnGuard (XE8'e kadar)
Üzerinde düzeltmeler yapılmış OnGuardVCL  (D10.xx)
Üzerinde düzeltmeler yapılmış OnGuard FMX (D10.xx)
Cevapla
#8
UserControl diye bir bileşen var her olay için ayrı ayrı yetkilendirme yapabiliyorsunuz. Ben uzun süredir kullanıyorum ve çok memnunum.

Hatta isterseniz profil oluşturup kullanıcılara profil üzerinden yetki verebiliyorsunuz.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla
#9
(13-02-2021, Saat: 20:37)Aktolgali Adlı Kullanıcıdan Alıntı: UserControl diye bir bileşen var her olay için ayrı ayrı yetkilendirme yapabiliyorsunuz. Ben uzun süredir kullanıyorum ve çok memnunum.

Hatta isterseniz profil oluşturup kullanıcılara profil üzerinden yetki verebiliyorsunuz.

Bilseni nasil bulabiliriz acaba?
Cevapla
#10
(14-02-2021, Saat: 23:42)serdar Adlı Kullanıcıdan Alıntı:
(13-02-2021, Saat: 20:37)Aktolgali Adlı Kullanıcıdan Alıntı: UserControl diye bir bileşen var her olay için ayrı ayrı yetkilendirme yapabiliyorsunuz. Ben uzun süredir kullanıyorum ve çok memnunum.

Hatta isterseniz profil oluşturup kullanıcılara profil üzerinden yetki verebiliyorsunuz.

Bilseni nasil bulabiliriz acaba?

https://sourceforge.net/projects/usercontrol/
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Programa yönetici izni vermek. Shou 1 1.658 07-01-2017, Saat: 21:40
Son Yorum: Shou



Konuyu Okuyanlar: 1 Ziyaretçi