Yii Framework Forum: accessRules() - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

accessRules()

#1 User is offline   acemi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 13-June 11

  Posted 28 June 2011 - 02:50 PM

Merhaba,
accessRules için Yii'nin blog demosundaki kodları incelediğimde (http://www.yiiframew.../en/post.create) şunu görüyorum :

return array(
        array('allow',  // allow all users to perform 'list' and 'show' actions
            'actions'=>array('index', 'view'),
            'users'=>array('*'),
        ),
        array('allow', // allow authenticated users to perform any action
            'users'=>array('@'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );


Bunları hangi sırayla yazdığımız farketmiyor mu ? Şöyle açıklayayım, ilk kuralda index ve view eylemini tüm üyeler için erişilebilir yap diyor, 2. kuralda tüm eylemleri sadece üyelere erişilebilir yap diyor. BU durumda 1. kuralın üzerine yazılmış ve index, view eylemleri de sadece üyeler tarafından erişilebilir hale gelmiş olmuyor mu ?

Atladığım bir yer var ama bulamıyorum. Bunun mantığını anlatır mısınız lütfen?
0

#2 User is offline   alper 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 53
  • Joined: 12-November 10

Posted 08 July 2011 - 02:20 AM

Bu konuya ben de geçeceğim, henüz birşey diyemiyorum , eğer birşeyler öğrendiysen öğrenmek isterim. Kısa bir zaman sonra ben de bildiklerimi paylaşıcağım.
0

#3 User is offline   Cihan Ozturk 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 38
  • Joined: 02-June 10
  • Location:İstanbul

Posted 14 July 2011 - 04:01 PM

View Postacemi, on 28 June 2011 - 02:50 PM, said:

Merhaba,
accessRules için Yii'nin blog demosundaki kodları incelediğimde (http://www.yiiframew.../en/post.create) şunu görüyorum :

return array(
        array('allow',  // allow all users to perform 'list' and 'show' actions
            'actions'=>array('index', 'view'),
            'users'=>array('*'),
        ),
        array('allow', // allow authenticated users to perform any action
            'users'=>array('@'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );


Bunları hangi sırayla yazdığımız farketmiyor mu ? Şöyle açıklayayım, ilk kuralda index ve view eylemini tüm üyeler için erişilebilir yap diyor, 2. kuralda tüm eylemleri sadece üyelere erişilebilir yap diyor. BU durumda 1. kuralın üzerine yazılmış ve index, view eylemleri de sadece üyeler tarafından erişilebilir hale gelmiş olmuyor mu ?

Atladığım bir yer var ama bulamıyorum. Bunun mantığını anlatır mısınız lütfen?


anladığım kadarı ile 2. ve 3. kural 1. nin sağlaması gibi bir şey yazmasanda çalışır gibime geliyor ( denemedim )
0

#4 User is offline   alper 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 53
  • Joined: 12-November 10

Posted 09 August 2011 - 09:05 AM

Çalışma şekli olarak en geniş yetkiyi baz alıyor.

array('allow',
      'actions'=>array('index'),
      'users'=>array('@'),
     ),
array('allow',
     'actions'=>array('index'),
     'users'=>array('*'),
     ),


Bu kodu denediğinde, ister "@" giriş yapan ile "*" herkes girebilir yerlerini değiştir sıralaması hiç önemli değil, sistem en geniş yetkili olanı çalıştırıyor. O da bütün herkes indexe girebilir.
0

#5 User is offline   alper 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 53
  • Joined: 12-November 10

Posted 11 August 2011 - 10:22 AM

Sistem yukarıdan aşağıya doğru bakıyor.

return array(
        array('allow',  // allow all users to perform 'list' and 'show' actions
            'actions'=>array('index', 'view'),
            'users'=>array('*'),
        ),
        array('allow', // allow authenticated users to perform any action
            'users'=>array('@'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );


Fonksiyon şu şekildeymiş, yukarıdan aşağıya doğru döngü ile dönüyor. Her bir kuralda bakıyor bu action'a giriş istenilen değerleri destekliyor mu diye, eğer o kural bizim istekte bulunduğumuz yerle alakası yok ise 0 döndürüyor , eğer girmek istediğimiz yer ve giremiyorsak -1 dönüyor ve giriş yasak diyor. Eğer koşul tamamsa 1 dönüyor ve geri kalan rule'lara bakmıyor action çalışıyor.

Bu yüzden sistemi kurarken en başa izin verilenler konuluyor. Sonra yavaş yavaş yetkisi azaltılarak ekleniyor. En altada izin verilmeyenler.

Sen sıralamayı nasıl yaparsan ona göre sonuç alıyorsun.

Burada da index ve view hiç koşulsuz herkes bakabilir.
Geri kalan actionlar ise hiç tanım olmadığı için geneli "@" login olmanı istiyor.
Bunlar dışında bir istek gelirsede engelliyor.
0

#6 User is offline   Cihan Ozturk 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 38
  • Joined: 02-June 10
  • Location:İstanbul

Posted 22 August 2011 - 04:33 PM

View Postalper, on 11 August 2011 - 10:22 AM, said:

Sistem yukarıdan aşağıya doğru bakıyor.

return array(
        array('allow',  // allow all users to perform 'list' and 'show' actions
            'actions'=>array('index', 'view'),
            'users'=>array('*'),
        ),
        array('allow', // allow authenticated users to perform any action
            'users'=>array('@'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );


Fonksiyon şu şekildeymiş, yukarıdan aşağıya doğru döngü ile dönüyor. Her bir kuralda bakıyor bu action'a giriş istenilen değerleri destekliyor mu diye, eğer o kural bizim istekte bulunduğumuz yerle alakası yok ise 0 döndürüyor , eğer girmek istediğimiz yer ve giremiyorsak -1 dönüyor ve giriş yasak diyor. Eğer koşul tamamsa 1 dönüyor ve geri kalan rule'lara bakmıyor action çalışıyor.

Bu yüzden sistemi kurarken en başa izin verilenler konuluyor. Sonra yavaş yavaş yetkisi azaltılarak ekleniyor. En altada izin verilmeyenler.

Sen sıralamayı nasıl yaparsan ona göre sonuç alıyorsun.

Burada da index ve view hiç koşulsuz herkes bakabilir.
Geri kalan actionlar ise hiç tanım olmadığı için geneli "@" login olmanı istiyor.
Bunlar dışında bir istek gelirsede engelliyor.



Paylaşım için teşekkürler -)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users