1

Konu: foxpro ile yazilan programin sifre ile ozelliklerini kisitlamak

arkadaslar foxpro ile yazdigimiz bir programin bazi ozelliklerini sifre ile kisitlayabilmek icin nasil bir yontem izleyebiliriz dersiniz

2

Re: foxpro ile yazilan programin sifre ile ozelliklerini kisitlamak

anladığım kadarı ile,kullanıcılara bazı menü ve modüllere yetki vererek kısıtlama yapmak istiyorsun.Öncelikle yapman gereken bir user tablosu oluşturup,kullanıcıları adı ve şifreleri bu tabloda tutman,programa ilk girişte bu kullanıcı adı ve şifreyi sorgulatıp kullanıcıyı sisteme öyle alabilirsin.daha sonra,yetkilendirme bilgilerini tutacağın bir tablo oluşturman gerekecek.buradada gruplar oluşturabilirsin,herkeze tek tek yetki vermekten se bir gruba (örneğin MUHASEBE GRUBU)   yetki tanımlamak daha kolay ve pratik olur.Bu yetki tablosunda hangi modüle,yada ekrana erişim izni vereceksen o bilgileri tutmalısın.işin zor tarafına gelince,her ekranda yada her raporda,Programı kullanan user in bu işlemi yapmaya yetkisi var mı yok mu? bu tablodan sorgulaman gerekecek,bu bayağı zahmetli bir iş,başlangıçta iyi planlama yapmazsan sıkıntı çekebilirsin.Benim adetim,önce programı yazarım,sora tek tek tüm menüleri bu mantıkla yetkilendirme işlemine geçerim.bayağı uğraştıran bir konudur vesselam.

En büyük sermaye nakit,nakit sermaye vakittir...

3

Re: foxpro ile yazilan programin sifre ile ozelliklerini kisitlamak

neyzen ile aynı mantık olmasına rağmen ben başka bir uygulama yapıyorum:
Her yetkiseviyesi için ayrı menu yapıyorum. Kullanıcı şifresini girince yetki seviyesine göre gelen menüden olmayanlara zaten erişemiyor, aşağıda bir alıntı:

Visual Fox Pro
* Click Event

WITH This.P[2].Yetkiliste
RELEASE MENUS
DO CASE
CASE .List(.ListIndex,2)=UC  && yetkilistenin 2. verisi 
  DO c:\fox\at9c\menus\menuana3.mpr WITH ThisForm,.T.
CASE .List(.ListIndex,2)=IKI
  DO c:\fox\at9c\menus\menuana2.mpr WITH ThisForm,.T.
CASE .List(.ListIndex,2)=BIR
  DO c:\fox\at9c\menus\menuana1.mpr WITH ThisForm,.T.
OTHE
  RELEASE MENUS  && başka yetkibilgisi, hiç menü yok, hiç erişim yok
ENDC
 
ENDW
VFP9 SP2

4

Re: foxpro ile yazilan programin sifre ile ozelliklerini kisitlamak

Ben menü oluşturulurken kişiye özel menü oluşturuyorum. Sizlerin de bahsettiği şekilde yetkilerin tutulduğu bir tablom var. Her menü alanı bu tabloda field olarak var ve true/false olarak duruyor.
Aşağıdaki basit örnekte menü köklerinden menü maddesine kadar yetki kontrolü yapılarak menü sistemi oluşturuluyor. Önce YETKİ kütüğünden kullanıcının yetkilerinin olduğu kayıt bulunuyor, sonra da her alan/menü için karşılaştırılarak menü oluşturuluyor.

IF ODE_PAD  && Ödeme menüsüne yetkili olup olmadığını belirten field true/false
    DEFINE PAD odemeler OF _MSYSMENU PROMPT "Ödemeler" COLOR SCHEME 3 KEY ALT+O, ""
    ON PAD odemeler OF _MSYSMENU ACTIVATE POPUP odemeler
    DEFINE POPUP odemeler MARGIN RELATIVE SHADOW COLOR SCHEME 4
    IF ODE_RAPOR   && Ödeme raporlarını görmeye yetkili olup olmadığını belirten field true/false
        DEFINE BAR 1 OF odemeler PROMPT "Ödeme Girişi"
    ENDIF
 *          ..............
 *          ..............
ENDIF