Auth API (ACL)

#1. Cotonti Yetkilendirme (Auth) Sistemi Nedir?


Kısaca, Cotonti Yetkilendirme Sistemi, Gruplara Çekirdek sistemin belirli özelliklerine ve/veya Eklentilere erişim izni verilmesini veya reddedilmesini sağlayan sistemdir.
Auth, kimlik doğrulama (Authentication) anlamına gelir.

#2. Temel Bilgiler

Cotonti çoğunlukla yalnızca 3 erişim seviyesi kullanır.

Okuma, Yazma ve Yönetici

Her seviyenin genellikle sağladığı yetkiler şunlardır:

  • Okuma - Bir bölümü veya eklentiyi görüntülemek için gereklidir. Hook'larda, bu erişim seviyesine sahip gruplar için hook'un çalıştırılmasına izin verir.
  • Yazma - Forumda konu açmak, yanıt yazmak veya bir bölüme sayfa eklemek gibi işlemleri yapmak için gereklidir. Eklentiler için bu yetkinin işlevi, eklentinin tasarımına bağlıdır.
  • Yönetici - Web sitesindeki yönetici erişim izinlerini sağlar. Örneğin, bölümlerdeki sayfaları düzenleme, kullanıcı profillerini düzenleme, forumlarda düzenleme/silme/sabit yapma gibi işlemleri yapma yetkisi verir.

Genel kullanım için Cotonti Yetkilendirme Sistemi hakkında bilinmesi gereken temel bilgiler bunlardır.

#3. Gelişmiş Kullanım: Eklenti Geliştirme

Bu, eklentimde ne işe yarayacak?

Belirli alanlara veya özelliklere yalnızca belirli kullanıcı gruplarının erişebilmesini sağlar. Cotonti'nin bu özelliğini öğrendiğinizde, ne kadar basit ve kullanışlı olduğunu fark edeceksiniz.

Neden doğrudan kullanıcı seviyesi kullanmıyoruz?

Cotonti'deki seviye özelliği eski ve modası geçmiş bir yöntemdir. Kullanıcı seviyeleri, farklı kullanıcıların farklı seviyelerde veya ek gruplarda olabileceğinden, erişimi hassas şekilde ayarlamaya olanak tanımaz. Doğrudan seviye karşılaştırmaları yapmak, istenmeyen kullanıcıların erişim kazanmasına sebep olabilir.

Temel Kullanım

Daha önce belirtilen sistemle aynıdır. Okuma yetkisi eklentinin veya hook'un çalıştırılabilmesi için gereklidir. Diğer yetkiler ise geliştirici tarafından belirlenir.

Bir kullanıcının yetkilendirme bilgilerini almak

cot_auth fonksiyonu TRUE (1), FALSE (0) veya bir dizi (aşağıda açıklanmıştır) döndürür.
Fonksiyonun sözdizimi şu şekildedir:

cot_auth('plug', 'code', 'yetki seviyesi');
$auth = cot_auth('plug', 'code', 'yetki seviyesi');
list($usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = cot_auth('plug', 'code');
cot_block(cot_auth('plug', 'code', 'yetki seviyesi')); // Yetki kontrolü için değişken kullanmadan kontrol etme
cot_block($variable); // Önceden değişkende saklanan TRUE veya FALSE değerini kontrol etme
cot_blockguests(); // Misafirleri engelle
$auth = cot_auth('plug', 'code', 'yetki seviyesi'); // Eğer bir değişkende saklıyorsanız önce bunu çağırın
if($auth == FALSE) { // Erişim reddedildiğinde yapılacak işlemler
    // Yetkilendirme başarısız
} 
// Alternatif kontroller:
if($auth == 0) { // FALSE ile aynı sonucu verir
    // Yetkilendirme başarısız
}
if(!$auth) { // FALSE kontrolü
    // Yetkilendirme başarısız
}

// Eğer sadece bir kez kontrol edilecekse, doğrudan fonksiyon çağrılabilir:
if(cot_auth('plug', 'code', 'yetki seviyesi') == FALSE) { 
    // Yetkilendirme başarısız
}
if(cot_auth('plug', 'code', 'yetki seviyesi') == 0) { 
    // Yetkilendirme başarısız
}
if(!cot_auth('plug', 'code', 'yetki seviyesi')) { 
    // Yetkilendirme başarısız
}
  • 'plug' - Bunun bir eklenti olduğunu belirten sabit değer.
  • 'code' - Eklentinizin kod adı.
  • 'yetki seviyesi' - Kontrol edilecek yetki seviyesi (Örn: 'R', 'W', 'A', 'RWA', '12345' vb.). Eğer birden fazla yetki seviyesi belirtilirse, dönen değer bir dizi olacaktır.
  • $usr['auth_read'] - Okuma yetki durumunu saklar.
  • $usr['auth_write'] - Yazma yetki durumunu saklar.
  • $usr['isadmin'] - Yönetici yetki durumunu saklar.

1. Killer  2009-11-29 16:59
А можно перевод этого плуга? Для чего он? :)
2. Sergeich  2009-11-30 15:49
Я так понял эта штука позволяет устанавливать права доступа для каждого конкретного юзера, т.е. это та же система прав групп (как сейчас в котонти или седитио), но с возможностью тюнинга под конкретного пользователя. Надо смотреть ближе. Требуется перевод второй части описания, там где техническая информация, чую я заморочена установка у этого плагина.
3. Killer  2009-12-02 23:45
Надеюсь появится перевод, а то не дружу с английским.
4. root  2010-01-10 19:29
Rus please :(
Yalnızca kayıtlı kullanıcılar yorum yapabilir