Admin Ve Role Oluşturma Mantığı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Merhaba arkadaşlar,

    Yazdığım bir websitesinde admin panelinde roller tanımlayarak kategoriler üzerinde yetkiye sahip olacak kişilere rol vermek istiyorum.   

    Mesela editor create , update ve delete (Kendi yazıları için)  kullanabilecekken ilgili kategori de admin olan kişi create,update ve delete (İlgili kategorideki tüm veriler üzerinde) işlem yapabilecek.  Kullanıcının kimisi tek bir yetkiye sahip olabilir veya birden fazla kategori de birden fazla yetkisi de olabilir. Muhtemelen kafanızda istediğim şey canlanmıştır.

    Şimdi veritabanında nasıl bir ilişki kursam daha mantıklı olur, veya siz bu tür durumlarda admin lte veya voyager gibi hazır admin sistemleri mi kullanıyorsunuz ne tavsiye edersiniz ?

    Dil: Php  DB: Mysql Framework: Laravel


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Herbokolog
    KaptaN
    KaptaN's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 30/Ağustos/2005
    Erkek

    hocam yetkisi olana 1 olmayana 0 desen olmazmı ? 

    örnegin klasöre yazma yetkisi 1  çıktı alma yetkisi 0 gibi olmaz mı :S

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    KaptaN bunu yazdı

    hocam yetkisi olana 1 olmayana 0 desen olmazmı ? 

    örnegin klasöre yazma yetkisi 1  çıktı alma yetkisi 0 gibi olmaz mı :S

    Hocam tek bir yetkili olsa dediğin gibi yapardım da farklı roller ve her bir kategori için rol tanımlama vs olacak. Poliformik bir ilişki kurarak yapıyorum aslında ama biraz uzun bir yol gibi geldi ondan dolayı fikir almak istedim


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    MVC 4 FW ile çok kolaydı.

     

    Kullanıcı tablosunda bir sütun açıyorsun. Bu tamsayı tipinde veri tutuyor. Sonra her bir işleme bir enum veriyorsun. Örneğin:

    Post listele = 1

    Post gönder = 2

    post sil = 4

    post düzenle = 8 vs. Dikkat ettiysen bu şu şekilde aslında ( 0000001 << n) yani sürekli sola kaydırıyoruz 1'i. Böylece işlemde denetleyebileceğiz.

    Bu sütunun değerini session'a aktarıyoruz. İş zekası metotlarımızı da buna göre düzenliyoruz. Örneğin:

    function yeniPostAd($category_id, $postVeri)

    {

        if (yetkisiVarMi(Yetki, $kullanici))...

     

    Örnek şurada: https://www.ideone.com/AKg1Ev

     

    <?php
    
    abstract class Yetkiler
    {
    	const Listele = 1 << 0;
    	const Ekle = 1 << 1;
    	const Duzenle = 1 << 2;
    	const Sil = 1 << 3;
    }
    
    function yetkisiVarMi($Yetki, $KullaniciYetki)
    {
    	if( ($KullaniciYetki & $Yetki) == $Yetki)	
    	{
    		return true;
    	}
    	return false;
    }
    
    $kullanici = Yetkiler::Listele | Yetkiler::Ekle | Yetkiler::Duzenle;
    
    if(yetkisiVarMi(Yetkiler::Listele, $kullanici))
    {
    	echo 'Listele yetkisi var.';
    }
    else
    {
    	echo 'Listele yetkisi yok.';
    }
    if(yetkisiVarMi(Yetkiler::Sil, $kullanici))
    {
    	echo 'Silme yetkisi var';
    }
    else
    {
    	echo 'Silme yetkisi yok';
    }



    YeniHarman tarafından 07/Nis/18 23:50 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AslanAmca
    AslanAmca's avatar
    Kayıt Tarihi: 25/Eylül/2010
    Erkek
    üyeler yetkiler üyeler_yetkiler
    üye_id, üye adı vs vs yetki_id, yetki_adı uye_id, yetki_id, yetki_seviyesi

    böyle üç tablon olsun

    sonra her fonksiyonda falan orası için gerekli yetkiyi belirle. üyeler_yetkiler tablosundaki yetki seviyesinde göre izin ver ya da verme. 0,1,2 yaparsın mesela. 0 hiç giremez, 1 girer görür düzenleyemez, 2 girer/düzenler gibi.

    herhangi bir fw kullanıyo musun? çoğu fw kendi içinde sunuyo bunları. bu yapmak istediğin şeye authorization deniyo, bu şekilde de aratabilirsin

    edit: laravel kullaniyomussun zaten : https://laravel.com/docs/5.6/authorization

     

    AslanAmca tarafından 08/Nis/18 00:15 tarihinde düzenlenmiştir

    İnsanlara umut sat gerisi gelir.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Bir sayfalar diye tablon olsun.

    id, url, durum

    bir de roller tablon olsun

    id, rol, durum

    Bir tane de sayfarolleri tablon olsun.

    id, sayfaid, rolid, listele_genel, listele_ozel, ekle_genel, ekle_ozel, guncelle_genel, guncelle_ozel, sil_genel, sil_ozel

     

    Gibi alanlarin olsun. Devamini yarin bilgisayardan anlatayim, mobilden zor oluyor.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    https://codex.wordpress.org/Roles_and_Capabilities


    arbeit macht frei
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    role based access control diye arastir hocam :)


    There are 10 types of people in the world. Those who knows binary and those who dont...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hipokondriyak
    hipokondriyak's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Abi laravvi arkadas make auht yapti users filan yazdi cat hepsi geldi oyle birsey olabilir bakarsan bulursun ddiyr dusunuyorum


    Homo sapiens, yaşamak için, diğer canlıların yaşamasına muhtaç; obligat parazit türüdür. "Sen olursan boş bardak , sana olur koyan çok su. a.g."
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    hipokondriyak bunu yazdı

    Abi laravvi arkadas make auht yapti users filan yazdi cat hepsi geldi oyle birsey olabilir bakarsan bulursun ddiyr dusunuyorum

    Hocam make auth yapınca üyelikle ilgili şeyler otomatik olarak yapılıyor, olay biraz daha complex :) Relationshipleri kullanarak gidiyorum ama biraz takıldım doğrusu.  Yarım yamalak ingilizcem le aşağıdaki konuyu açtım stackoverflow da. Bakalım cevap gelecek mi 

    https://stackoverflow.com/questions/49718464/how-relationship-laravel-auth 


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
Toplam Hit: 1121 Toplam Mesaj: 10
php