Списки контроля доступа или управление доступом на основе ролей в yii

хе, я хочу понять, какой метод лучше всего использовать и как, если есть простой пример, потому что я не могу указать, какой именно ролик дать ведьме

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('*'),
),
);
}

2

Решение

Вы можете указать на основе пользовательских ролей, например, для редактора, который вы хотите показывать, только редактировать пользовательские функции, а для издателя вы можете предоставить только доступ для блокировки и разблокировки пользователя и т. Д.
Например: мы использовали приведенный ниже код в нашем проекте

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'),
),
3

Другие решения

Попробуйте это расширение Yii, может быть, это поможет вам —

http://www.yiiframework.com/extension/rbam

Или получить идею от — Yii Framework: управление доступом на основе ролей

0