• 19-12-2019, 19:27:33
    #1
    Arkadaşlar Merhaba üzerinde çalıştığım bir sistem var üyelik sistemini yazdım site üzerine üye olan kişilere modüllere göreme ekleme silme düzenleme olarak 4 adet yetki vermek istiyorum
    10 tane modülüm var veritabanına kayıdettiğim ve ayrıca
    modül yetkileri diye aşağıdaki gibi bir tablom var

    1 id
    2 yoneticiid
    3 modulid
    4 gorme
    5 yazma
    6 duzenleme
    7 silme
    burda yapmak istediğim yönetici düzenleme panelinde. modülleri çekip chexbox lar aracılığıyla modul id yonetici id yi alarak hangi modüllerde hangi yetkiler verilmişse ona göre vt ye yazdırmak istiyorum. tabi becermedim bir türlü yardımcı olabilecek arkadaşların fikirlerini bekliyorum..
  • 19-12-2019, 19:29:24
    #2
    Her module bir numara verirsiniz ona gore istediginiz kisilere numaraya gore yetkilendirirsiniz.
  • 19-12-2019, 19:58:07
    #3
    flatcastradyo adlı üyeden alıntı: mesajı görüntüle
    Her module bir numara verirsiniz ona gore istediginiz kisilere numaraya gore yetkilendirirsiniz.
    hocam o kısımda sorun yok tek seferde yönetici id si ve modül id si ile checkbox lardan gelen verileri cdizine atıp tek seferde veritabanına yazdırmak istiyorum yoksa teker teker alıp yapmak kolay
  • 19-12-2019, 21:08:06
    #4
    Role based access control terimini araştırmanızı tavsiye ederim.
  • 22-12-2019, 12:14:24
    #5
    coder63 adlı üyeden alıntı: mesajı görüntüle
    Role based access control terimini araştırmanızı tavsiye ederim.
    hocam çok araştırdım ama kendis sitemime entegre etme işi sıkıntı enzaından yazdığım bir üyelik sistemim var. onunla çözmeye çalışıyorum..
  • 22-12-2019, 13:08:10
    #6
    armagon53 adlı üyeden alıntı: mesajı görüntüle
    hocam çok araştırdım ama kendis sitemime entegre etme işi sıkıntı enzaından yazdığım bir üyelik sistemim var. onunla çözmeye çalışıyorum..
    https://www.sitepoint.com/role-based...ontrol-in-php/

    Birçok kaynak var nette. Mesela bu paylaştığım sayfa da gayet güzel ve kodları paylaşarak anlatmışlar.
    Eğer sisteme entegre konusunda bir sıkıntı yaşıyorsanız kodlama stiliniz olması gerektiği gibi değildir.
    Bundan dolayı oop - mvc - design patterns - psr gibi kavramları ve içeriklerini özümseyerek ilerlemenizi tavsiye ederim.
  • 22-12-2019, 23:41:48
    #7
    Basit bir şekilde şöyle yapılabilinir,
    i-
    Checkboxlardan modülID leri alalım. AhmetID 'ye düzenleme (1),ekleme (2) ....vb. ... yetkisi için.

    VT ye foreach döngüsüne atarak aralarına -örneğin virgülle 1,2,3,4 gibi- kayıt edilebilinir.
    $yetki=''1,2,3,4;
    INSERT INTO ya da UPDATE v.ss.................... yetkitablosu = '$yetki'


    ii-Modül sayfalarına giriş yetkisi içinde;

    Fonksiyon yazılabilinir;

    SQL'den yetkitablosu alınır. Explode () ile virgüller ayrılır. Explode dizi haline getireceğinden in_array kullanarak kontrol sağlanabilinir.

    Örneğin;
    Ekleme Modulu Yetkisi ID = 2 olsun, Ahmet'in yetkitablosu 2,3,5,6 ID ye sahip modüllere yetkili olsun.


    $modulYetkiID =2; // 2 değeri var olduğundan "True" dönecektir.
    $yetkidizi= explode(',',$SQL_CEKILEN_VERI["YETKİTABLOSU"]);
    if(!in_array($modulYetkiID,$yetkidizi)){
              return false;
    }else{
               return true;
    }
  • 25-12-2019, 08:59:32
    #8
    coder63 adlı üyeden alıntı: mesajı görüntüle
    https://www.sitepoint.com/role-based...ontrol-in-php/

    Birçok kaynak var nette. Mesela bu paylaştığım sayfa da gayet güzel ve kodları paylaşarak anlatmışlar.
    Eğer sisteme entegre konusunda bir sıkıntı yaşıyorsanız kodlama stiliniz olması gerektiği gibi değildir.
    Bundan dolayı oop - mvc - design patterns - psr gibi kavramları ve içeriklerini özümseyerek ilerlemenizi tavsiye ederim.
    hocam evet bunu biliyorum ama istediğim bu değil zira burda kullunıcıya yetki veriyorsunuz bunu yapmak da sorun yok ama bu verdiğiniz tüm modullerde aynı yetkiyi alacağı anlamına geliyor. benim yapmak istediğim modul bazında yetkilendirmek her modülde aynı yetkisi olsun istemiyorum. ha onuda her modüle admin panelden teker teker yetki vererek yapabilirim ama ben istiyorumki chexsoxlardan seçim yaparak tk seferden verebileyim vt ye yazdırmayı beceremedim for döngüsünü tasarlayamadım bir türlü. teşekkür ederim
    yani yazdırabilsem sorun zaten halloluyor.



    GökTuğ adlı üyeden alıntı: mesajı görüntüle
    Basit bir şekilde şöyle yapılabilinir,
    i-
    Checkboxlardan modülID leri alalım. AhmetID 'ye düzenleme (1),ekleme (2) ....vb. ... yetkisi için.

    VT ye foreach döngüsüne atarak aralarına -örneğin virgülle 1,2,3,4 gibi- kayıt edilebilinir.
    $yetki=''1,2,3,4;
    INSERT INTO ya da UPDATE v.ss.................... yetkitablosu = '$yetki'


    ii-Modül sayfalarına giriş yetkisi içinde;

    Fonksiyon yazılabilinir;

    SQL'den yetkitablosu alınır. Explode () ile virgüller ayrılır. Explode dizi haline getireceğinden in_array kullanarak kontrol sağlanabilinir.

    Örneğin;
    Ekleme Modulu Yetkisi ID = 2 olsun, Ahmet'in yetkitablosu 2,3,5,6 ID ye sahip modüllere yetkili olsun.


    $modulYetkiID =2; // 2 değeri var olduğundan "True" dönecektir.
    $yetkidizi= explode(',',$SQL_CEKILEN_VERI["YETKİTABLOSU"]);
    if(!in_array($modulYetkiID,$yetkidizi)){
              return false;
    }else{
               return true;
    }
    hocam sağolasın bu biraz daha farklı olmuş bunu deneyeceğim bi teşekkür ederim..
  • 25-12-2019, 10:38:10
    #9
    Siz mantığı anlamamışsınız hocam.

    Her role farklı permission (izin) ler vererek kullanıcıya direk role verip tek tek izinler ile uğraşmayabilirsiniz.
    Eğer role oluşturmayacağım esnek şekilde izin vereceğim diyorsanız her üyeye ayrı ayrı permission tanımlarsınız.

    Kullanıcıya tanımlı role varsa bu role ait permission lar getirilir , role bağlı olmadan permission verilmişse onlarda getirilir. Ona göre işlem yapılır.
    Yazılım geliştiricilerin kullandığı genel, yaygın ve kabul gören yöntem budur.