Yii (RBAC)
оффициальный тутор
видео по нему
в принципе все очень просто. особенно по видео.
нюансы:
1.в auth
--
что 1, что admin являются именами. скорее всего вы не храните имя роли полностью и у вас есть ссылка на таблицу со списками ролей. тогда webuser.php
--
в принципе все очень просто. особенно по видео.
нюансы:
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
Комментарии
Отправить комментарий