Yii (RBAC)

April 8, 2015

оффициальный тутор


видео по нему

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

нюансы:
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


Source: des1roer.blogspot.com

Комментарии

comments powered by Disqus