2012-07-13 116 views

回答

3

首先,你需要在系統中所有角色的下拉列表中,管理員選擇..

<?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

+0

這就是我一直在尋找..thankyou這麼多..我會拜訪你的博客.. – user1135655 2012-07-14 04:45:46

0

我不太熟悉權利 - 我使用rbam擴展代替。你有沒有試過在Rights manual搜索你的答案?

0
if ($user->save()) 
    Rights::assign('Authenticated', $user->id); 

「身份驗證」可以與任何其他角色替代。