[英]Access Control Lists or Role-based access control in 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('*'),
),
);
}
您可以基於用戶角色進行指定,例如對於您想要只顯示編輯用戶功能的編輯者,對於發布者,您只能提供阻止和取消阻止用戶的訪問權限等等。 例如:我們在項目中使用了以下代碼
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'),
),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.