我已經安裝了大多數人建議的權限,它很容易實現基於角色的訪問控制。但我被困在一個問題..從admin分配給用戶角色創建一個用戶,在Yii Rbac擴展權限
我需要將用戶從管理員的作用,誰可以改變他們的roles..etc分配..
由於權利不會爲我付出更多的錶款插入他們..因此,沒有文件,如何做到這一點...
我已經安裝了大多數人建議的權限,它很容易實現基於角色的訪問控制。但我被困在一個問題..從admin分配給用戶角色創建一個用戶,在Yii Rbac擴展權限
我需要將用戶從管理員的作用,誰可以改變他們的roles..etc分配..
由於權利不會爲我付出更多的錶款插入他們..因此,沒有文件,如何做到這一點...
首先,你需要在系統中所有角色的下拉列表中,管理員選擇..
<?php
if (Yii::app()->user->isSuperuser) {
$all_roles=new RAuthItemDataProvider('roles', array(
'type'=>2,
));
$data=$all_roles->fetchData();
?>
<div>
<label for="type_id">Type</label>
<?php echo CHtml::dropDownList("Type",'',CHtml::listData($data,'name','name'));? >
</div>
<?php
}
?>
然後在後端,您需要根據管理員選擇的類型值爲用戶分配角色...
if(Yii::app()->user->isSuperuser)
$type=$_POST['Type'];
else
$type='User';
$authorizer = Yii::app()->getModule("rights")->authorizer;
$authorizer->authManager->assign($type, $model->id);
此代碼檢查是否註冊爲從管理,然後設置由管理員選擇的作用,否則它設置爲User
作用,即,相同的代碼會爲admin user create and normal signup
工作..
有這樣的其他在未preperly記錄版權問題...我已經寫了一些在我的博客.. My blog post about Yii Rights
我不太熟悉權利 - 我使用rbam擴展代替。你有沒有試過在Rights manual搜索你的答案?
嗯,實際上是Yii的,而不是權利
Yii::app()->authManager->assign($role, $userid);
http://www.yiiframework.com/doc/api/1.1/IAuthManager#assign-detail
謝謝你的參考.. – user1135655 2012-07-14 04:44:59
if ($user->save())
Rights::assign('Authenticated', $user->id);
「身份驗證」可以與任何其他角色替代。
這就是我一直在尋找..thankyou這麼多..我會拜訪你的博客.. – user1135655 2012-07-14 04:45:46