Ciao a tutti,
sto usando le estensioni rights e yii-user.
Vorrei sapere se è possibile assegnare un ruolo all'utente (continuando ad usare rights) al momento della creazione dell'utente stesso, tramite un menu a tendina, al posto di farlo dal pannello amministrativo di rights.
grazie,
Lilli
Page 1 of 1
Assegnazione Ruolo Utente Durante La Sua Creazione
#2
Posted 05 January 2013 - 07:47 PM
di solito l'utilizzo che ne faccio è di questo tipo:
l'utente che si registra ha un ruolo definito nell'applicazione, una volta registrato
nell'action actionRegistration ho questo codice:
a te serve questo?
oppure vorresti far scegliere all'utente che si registra, di assegnarsi un ruolo da solo?
nel secondo caso ho trovato questo snippet di codice, che potrebbe esserti utile:
chiaramente tolto l'if (Yii::app()->user->isSuperuser) {
l'utente che si registra ha un ruolo definito nell'applicazione, una volta registrato
nell'action actionRegistration ho questo codice:
if ($model->save()) {
$profile->id=$model->id;
$profile->save();
//Assegno ruolo di rights all'utente registrato.
$authenticatedName = Rights::module()->authenticatedName;
Rights::assign($authenticatedName, $model->id);
....
a te serve questo?
oppure vorresti far scegliere all'utente che si registra, di assegnarsi un ruolo da solo?
nel secondo caso ho trovato questo snippet di codice, che potrebbe esserti utile:
<?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
}
?>
chiaramente tolto l'if (Yii::app()->user->isSuperuser) {
#3
Posted 06 January 2013 - 09:58 AM
grazie della risposta.
nel mio caso solo l'amministratore può creare utenti, tramite la voce "crea nuovo utente" fornita dall'estensione yii-user.
quindi quello che vorrei è un campo in più (dropdown), in cui nel momento della creazione, decido che ruolo dare all'utente che sto creando. questo ruolo ovviamente deve essere registrato in rights (per intenderci nella tabella AuthAssignment).
nel mio caso solo l'amministratore può creare utenti, tramite la voce "crea nuovo utente" fornita dall'estensione yii-user.
quindi quello che vorrei è un campo in più (dropdown), in cui nel momento della creazione, decido che ruolo dare all'utente che sto creando. questo ruolo ovviamente deve essere registrato in rights (per intenderci nella tabella AuthAssignment).
#4
Posted 06 January 2013 - 06:59 PM
ok ho testato il codice,funziona. in questi giorni non avevo nulla sottomano.
e poi nel controller recuperi il valore dal post e fai quello che vuoi, come l'esempio che ti suggerivo su.
fai attenzione a fare anche quest'import nel config/main.php
altrimenti Yii non vede la classe RAuthItemDataProvider.
<?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
}
?>
e poi nel controller recuperi il valore dal post e fai quello che vuoi, come l'esempio che ti suggerivo su.
fai attenzione a fare anche quest'import nel config/main.php
'application.modules.rights.components.dataproviders.*',
altrimenti Yii non vede la classe RAuthItemDataProvider.
#5
Posted 09 January 2013 - 12:49 PM
grazie mille! funziona.
in alternativa c'è anche questa possibilità (senza bisogno dell'import):
nel secondo parametro i valori da escludere
e poi nel controller:
in alternativa c'è anche questa possibilità (senza bisogno dell'import):
<?php echo $form->dropDownList($model, 'role',
Rights::getAuthItemSelectOptions('2',array('Admin'))); ?>nel secondo parametro i valori da escludere
e poi nel controller:
if($model->save()){
$auth=Yii::app()->authManager;
$auth->assign($model->role,$model->id);
$this->redirect(array('view','id'=>$model->id));
}
Share this topic:
Page 1 of 1

Help














