Phpde Kullanıcıya Yetki Mantığını Anlatabilirmisiniz?

Bu konuyu okuyanlar

ynswtf

Öğrenci
Katılım
29 Ekim 2017
Mesajlar
54
Reaksiyon puanı
30
Puanları
18
Yaş
30
Merhaba arkadaşlar,

Kendi yazılımımı geliştiriyorum daha iyi geliştirmeler yapabilmek adına. Ama mantığını bir türlü çözemediğim bir olay var.

Yetkilendirme mantığı sizce nasıl olmalı?

Bu yetkilendirme mantığı takıldığım bir nokta ve beynimin son uclarına kadar kullandığım ama ne hikmetse zerre çözemediğim bir sorun. Normal şartlarda ben yetkilendirme sistemini şöyle kullanıyorum.

Veritabanına group adında tablo oluşturarak kullanıcı gruplarını oluşturuyorum perm adlı tabloyada is_admin,is_editor gibi virgül ile ayrılmış metinler ekliyorum. ÖRN: Sitenin menüsünde admin adında bir link var ve siz bu linki üyelerden gizlemeniz lazım Ben bir fonksiyon ile kişinin kullanıcı idsini alıyorum explode ile perm adlı tabluyu arraye atarak search etmesini sağlıyorum eğer arrayde is_admin değeri varsa ise true değerini dönderiyorum. Benim kullanma mantığım böyle ama sanki hiç de sağlıklı gibi değil. Siz bu konuda bana kalıcı bir fikir verebilirmisiniz?
 

Gurberkable

Asistan
Katılım
18 Ocak 2013
Mesajlar
118
Reaksiyon puanı
3
Puanları
18
Admin linkini gizlemek için şöyle birşey denenebilir.

Yetkili kullanıcının id'si 9 olsun ve bu 9 id'si yetkili kişiler tablonda ekli olsun. Kişi siteye girdiğinde id'si olan 9, session ile alınıp saklanır. Admin butonu bir sorgu ve if döngüsü sonucu yazdırılır. Sorguda bir değişkene yetkililer tablosundaki id'ler aktarılır. If sorgusunda giriş yapan yetkili kullanıcının id'si olan 9 ile yetkililer tablosundaki id'ler karşılaştırılır. Eğer yetkililer tablosunda 9 varsa Admin linki ekrana yazdırılır. Yoksa Admin yazması gereken alan boş kalmış olur.

Kodlaması ise resimdeki gibi olabilir.
asd.png
 

ynswtf

Öğrenci
Katılım
29 Ekim 2017
Mesajlar
54
Reaksiyon puanı
30
Puanları
18
Yaş
30
Admin linkini gizlemek için şöyle birşey denenebilir.

Yetkili kullanıcının id'si 9 olsun ve bu 9 id'si yetkili kişiler tablonda ekli olsun. Kişi siteye girdiğinde id'si olan 9, session ile alınıp saklanır. Admin butonu bir sorgu ve if döngüsü sonucu yazdırılır. Sorguda bir değişkene yetkililer tablosundaki id'ler aktarılır. If sorgusunda giriş yapan yetkili kullanıcının id'si olan 9 ile yetkililer tablosundaki id'ler karşılaştırılır. Eğer yetkililer tablosunda 9 varsa Admin linki ekrana yazdırılır. Yoksa Admin yazması gereken alan boş kalmış olur.

Kodlaması ise resimdeki gibi olabilir.
Ekli dosyayı görüntüle 29197
Anladım ancak sadece sitede admin olmayacak editorler moderatorler grafikerler gibisinden bir sürü kullanıcı olacak ve herkesin belki kullanıcı yetkileri farklı olacak ozaman bu pozisyonda olması gereken şu oluyor Users tablosunda kullanıcı bilgileri yer alırken aynı zamanda permission tablosunda da users tablosuna eşit şekilde clonlanmış değerler olacak ki yetkiler sıralansın gereksiz veriye sebebiyet verebilir. Ancak tekli yetkilerde dediğiniz mantıklı geldi. Uygulanabilir. Teşekkür ederim.
 

Furkan_C17

Öğrenci
Katılım
7 Kasım 2017
Mesajlar
12
Reaksiyon puanı
0
Puanları
1
Yaş
24
Basit.

Veritabanında admin diye vt var sayıyorum.

Sayfaya yönlendireceksin galiba. Bir yere giriş için. Giriş içinse kullanıcı adı şifre sorgulama varsa doğruysa yönlendirilecek sayfa kodunun üstüne ;

O kullanıcı adına ait yetki verisini çek.

Gelen veriyi değişkene aktar.

İf else ile kontrol ettir.


<?
Kod:
if ($gelen_yetki == "admin"){
 yönlendir
} else if (gelen_yetki == "mod"){
 Mod sayfasına yönlendir 
} else if ($gelen_yetki == 0){
 Normal kullanıcı sayfasına yönlendir
}
?>
 
Üst