Yii (RBAC)

оффициальный тутор
видео по нему

в принципе все очень просто. особенно по видео.

нюансы:
1.в auth
--


   'admin' => array(


        'type' => CAuthItem::TYPE_ROLE,

        'description' => 'admin',        

        'bizRule' => null,

        'data' => null

    ),

      '1' => array(

        'type' => CAuthItem::TYPE_ROLE,

        'description' => 'admin',        

        'bizRule' => null,

        'data' => null

    ),
--
что 1, что admin являются именами. скорее всего вы не храните имя роли полностью и у вас есть ссылка на таблицу со списками ролей. тогда webuser.php
 --


    function getRole() {

        if($user = $this->getModel()){

            // в таблице User есть поле role

            //return $user->id_role;

            return Role::model()->findByPk($user->id_role)->name;

        }

    }

и можно использовать такую проверку



if(Yii::app()->user->checkAccess('admin')){

    echo "hello, I'm administrator";

}




2. хитрость с контроллером --


    public function accessRules()

    {

        return array(

            array('allow',  // allow all users to perform 'index' and 'view' actions

                'actions'=>array('index','view'),

                'users'=>array('*'),

            ),

            array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions'=>array('create','update'),

                'users'=>array('@'),

            ),

            array('allow', // allow admin user to perform 'admin' and 'delete' actions

                'actions'=>array('admin','delete'),

                'roles'=>array('admin'),

            ),

            array('deny',  // deny all users

                'users'=>array('*'),

            ),

        );

    }

/code>
-- так я дал всем админам все права. но вот --


    array('allow',  // allow all users to perform 'index' and 'view' actions

                'actions'=>array('index','view'),

                'roles'=>array('*'),

            ),

--
работать НЕ БУДЕТ со звездочками работает только users

Популярные сообщения из этого блога

Пишем логи на C# (.NET). Легкий способ.

Средства для работы с базой данный PostgreSql

Авторизация yii 2 из базы