хе, я хочу понять, какой метод лучше всего использовать и как, если есть простой пример, потому что я не могу указать, какой именно ролик дать ведьме
public function accessRules()
{
return array(
array('allow', // allow authenticated 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'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
Вы можете указать на основе пользовательских ролей, например, для редактора, который вы хотите показывать, только редактировать пользовательские функции, а для издателя вы можете предоставить только доступ для блокировки и разблокировки пользователя и т. Д.
Например: мы использовали приведенный ниже код в нашем проекте
public function accessRules()
{
if(isset(Yii::app()->user->role) && Yii::app()->user->role == "superadmin"){
$arr = array('create','update','admin','delete','block','help','download','forgot');
} elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "admin") {
$arr = array('help','download','forgot');
} elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "editor") {
$arr = array('update');
} elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "publisher") {
$arr = array('block');
} else {
$arr = array('');
}
return array(
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>$arr,
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
Точно так же вы хотите показать страницу только зарегистрированному пользователю и некоторые страницы как для зарегистрированных, так и для гостевых пользователей. Мы можем сделать то же самое в функции accessRules ()
Разрешить всем пользователям
array('allow',
'actions'=>array('create','update'),
'users'=>array('*'),
),
Разрешить только зарегистрированным пользователям
array('allow',
'actions'=>array('create','update'),
'users'=>array('@'),
),
Чтобы создать ограничение на основе имен пользователей
array('allow',
'actions'=>array('create','update'),
'users'=>array('username1','username2'),
),
Попробуйте это расширение Yii, может быть, это поможет вам —
http://www.yiiframework.com/extension/rbam
Или получить идею от — Yii Framework: управление доступом на основе ролей