我想知道什么是最好的方法,如果有一个简单的例子,因为我不能指定巫婆的巫婆
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('*'),
),
);
}
发布于 2014-09-29 11:46:55
您可以根据用户角色指定,比如您想要的编辑器,只显示编辑用户特性,对于发布者,您只能提供对阻塞和取消阻塞用户的访问,等等。我们在我们的项目中使用了下面的代码
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('*'),
),
);
}
像wise一样,您希望只向注册用户显示页面,并为注册用户和来宾用户显示一些页面。我们可以在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'),
),
发布于 2014-09-29 14:15:52
试试这个分机,也许这能帮到你-
http://www.yiiframework.com/extension/rbam
或者从- Yii framework : role based access control那里得到一个想法
https://stackoverflow.com/questions/26097988
复制相似问题