After Installing Yii Users and Rights to Newly Created Yii app we have to assign dynamic roles to a user at the time of user creation .
first we have to create a role manually and add some operations and/or tasks to the role according to the needs
assume the role created was 'clients'
This is very simple , achieved by using two lines of code
save the user(assume $model->id is the user saved/created)
//assign role $authorizer = Yii::app()->getModule("rights")->getAuthorizer(); $authorizer->authManager->assign('clients', $model->id);
This is also very simple
the signed user id will get using Yii::app()->user->Id
$roles=Rights::getAssignedRoles(Yii::app()->user->Id); // check for single role foreach($roles as $role) if($role->name == 'clients') { //some actions here .. $this->redirect(array('/mailbox')); }
this should be a common need of an app.
this is also very simple when using yii rights
just use a '-' (minus) operator like
public function filters() { return array( 'rights - publicprofile', // perform access control for CRUD operations ); }
here the publicprofile action is public, all other actions in the same controller are under rights.
getting all the roles in the application
put this line in protected/config/main
'import'=>array( 'application.modules.rights.components.dataproviders.*', ),
get all roles as a dropdown
if (Yii::app()->user->isSuperuser) { $all_roles=new RAuthItemDataProvider('roles', array( 'type'=>2, )); $data=$all_roles->fetchData(); <div> <label for="type_id">Type</label> echo CHtml::dropDownList("Type",'',CHtml::listData($data,'name','name')); </div> }
Thank you Chris for the awesome module. and thanks mishamx.
Be the first person to leave a comment
Please login to leave your comment.