Admin Ve Role Oluşturma Mantığı
-
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
-
hocam yetkisi olana 1 olmayana 0 desen olmazmı ?
örnegin klasöre yazma yetkisi 1 çıktı alma yetkisi 0 gibi olmaz mı :S
-
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
-
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 -
ü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
-
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.
-
https://codex.wordpress.org/Roles_and_Capabilities
-
role based access control diye arastir hocam :)
-
Abi laravvi arkadas make auht yapti users filan yazdi cat hepsi geldi oyle birsey olabilir bakarsan bulursun ddiyr dusunuyorum
-
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