Yii User and Rights Implementation
implementing some features of yii user and rights.
some tips..
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 .
assume the role created was 'clients'
save the user(assume $model->id is the user saved/created)
the signed user id will get using Yii::app()->user->Id
this is also very simple when using yii rights
just use a '-' (minus) operator like
here the publicprofile action is public, all other actions in the same controller are under rights.
put this line in protected/config/main
get all roles as a dropdown
Thank you Chris for the awesome module. and thanks mishamx.
some tips..
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 .
Create a role manually
first we have to create a role manually and add some operations and/or tasks to the role according to the needsassume the role created was 'clients'
Giving role
This is very simple , achieved by using two lines of codesave the user(assume $model->id is the user saved/created)
//assign role $authorizer = Yii::app()->getModule("rights")->getAuthorizer(); $authorizer->authManager->assign('clients', $model->id);
Getting user role
This is also very simplethe 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')); }
Making some actions public
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 ); }
Getting all the roles
getting all the roles in the applicationput this line in protected/config/main
'import'=>array( 'application.modules.rights.components.dataproviders.*', ),
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> }
wah saya nggak terlalu ngerti ni soal coding :(
BalasHapussalam kenal ya