Yii Framework Forum: Assegnazione Ruolo Utente Durante La Sua Creazione - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Assegnazione Ruolo Utente Durante La Sua Creazione Rate Topic: -----

#1 User is offline   lilli 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 19-April 12

Posted 05 January 2013 - 07:08 PM

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
0

#2 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 329
  • Joined: 10-April 12

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:

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) {
0

#3 User is offline   lilli 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 19-April 12

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).
0

#4 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 329
  • Joined: 10-April 12

Posted 06 January 2013 - 06:59 PM

ok ho testato il codice,funziona. in questi giorni non avevo nulla sottomano.

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

#5 User is offline   lilli 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 19-April 12

Posted 09 January 2013 - 12:49 PM

grazie mille! funziona. :)

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));
}

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users