1. Add following code to _form.php
Yii::app()->getModule('rights');
if (Yii::app()->user->isSuperuser) {
$all_roles = new RAuthItemDataProvider('roles', array( 'type' => 2, ));
$data = $all_roles->fetchData(); echo CHtml::activeDropDownList($model, 'user_role', CHtml::listData($data, 'name', 'name')); }
2. Update actionCreate & actionUpdate of UsersController.php like this
public function actionCreate() {
$model = new User;
if (isset($_POST['User'])) {
$model->attributes = $_POST['User'];
if ($model->save()) {
Rights::assign($model->user_role, $model->id);
$this->redirect(array('view', 'id' => $model->id)); }
}
$this->render('create', array( 'model' => $model, )); }
public function actionUpdate($id) {
$model = $this->loadModel($id);
if (isset($_POST['User'])) {
$model->attributes = $_POST['User'];
if ($model->save()) {
Yii::app()->getModule('rights');
$assignedRoles = Rights::getAssignedRoles($model->id);
foreach ($assignedRoles as $role => $detail) {
Rights::revoke($role, $model->id); }
Rights::assign($model->user_role, $model->id);
$this->redirect(array('view', 'id' => $model->id)); }
}
$this->render('update', array( 'model' => $model, )); }