Yii Framework Forum: rbac visual - Yii Framework Forum

Jump to content

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

rbac visual Rate Topic: -----

#1 User is offline   epulgaron 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 168
  • Joined: 19-February 14

Posted 19 January 2015 - 10:11 AM

hola amigos, me ha costado un poco de trabajo pero me parece que ya entendí como funciona rbac en yii2, ahora me surge una duda, despues de leer bastante documentación y ejemplos no he visto como asignar los roles dinámicamente desde la interfaz, cuando digo dinámicamente me refiero que en el proceso de creación o edición de usuarios se puedan asignar los roles(mediante un combo o con un botón), si he visto como hacerlo mediante código, pero eso no me es funcional para el resultado final, ya que mis usuarios varian mucho tanto en existencia como en sus funciones y necesito darle esa funcionalidad al admin de la aplicación. alguna sugerencia?
0

#2 User is offline   erickMartinez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 160
  • Joined: 20-December 13

Posted 20 January 2015 - 12:35 PM

View Postepulgaron, on 19 January 2015 - 10:11 AM, said:

hola amigos, me ha costado un poco de trabajo pero me parece que ya entendí como funciona rbac en yii2, ahora me surge una duda, despues de leer bastante documentación y ejemplos no he visto como asignar los roles dinámicamente desde la interfaz, cuando digo dinámicamente me refiero que en el proceso de creación o edición de usuarios se puedan asignar los roles(mediante un combo o con un botón), si he visto como hacerlo mediante código, pero eso no me es funcional para el resultado final, ya que mis usuarios varian mucho tanto en existencia como en sus funciones y necesito darle esa funcionalidad al admin de la aplicación. alguna sugerencia?



pues yo te aconsejaría:

Opción 1 : Crear un roll standar para los usuarios que se registren (el roll se asigna automáticamente al crearse el usuario sin ningún tipo de botón) de tal forma que el admin pueda luego entrar a modificar el roll del usuario y ajustarlo a sus funciones. En esta opcion tendrias que ir a tu action create en tu controlado, luego de recibir los datos por POS de tu modelo usuarios tendrias q hacer un insert en el modelo de los rolles de tal manera q al id del usuario q se acaba de registrar le asignes por defecto un roll.

Opción 2: Antes de guardar validar la función del que se esta registrando de tal manera que se le asigne un roll especifico a determinada función por ejemplo: si el usuario elige como función "cajero" se le asignara un roll de "operador". En esta opcion debes hacer una validacion de un campo "funcion" para luego poder hacer el insert en el modelo de roll acorde a la funcion q desempeña el usuario registrado


Espero haberme hecho entender ayudaría un poco mas si posteas un poco del código (tu controlador de los usuarios, el modelo donde se asigna los roles y por ultimo el formulario de los usuarios).
0

#3 User is offline   epulgaron 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 168
  • Joined: 19-February 14

Posted 22 January 2015 - 10:22 AM

muchas gracias por la respuesta, pero buscando en la web vi esto yii2-improved-basic-template, solamente me lei la documentacion aqui doc y lo modifique segun mis necesidades, ya tengo mis roles, lo malo es que los debo crear al mismo tiempo, en yii1 yo creé una funcion que me permitia crear y asignar el rol dinamicamente, osea, cuando considerara necesario desde la interfaz de esta manera
<div class="row-fluid">
    <div class="span6">
      <h1>Crear rol</h1>
            <?php $form=$this->beginWidget("CActiveForm") ?>

            <?php echo $form->labelEx($role,"name");?>
            <?php echo $form->textField($role,"name");?>
            <?php echo $form->error($role,"name");?>

            <?php echo $form->labelEx($role,"description");?>
            <?php echo $form->textArea($role,"description");?>
            <?php echo $form->error($role,"description");?>
              
            <br>
            <?php echo CHtml::submitButton("Crear",array("class"=>"btn btn-primary")); ?>
            <?php $this->endWidget();?>  
    </div>
    <div class="span6">
      <ul class="nav nav-tabs nav-stacked">
            <?php foreach(Yii::app()->authManager->getAuthItems() as $data):?>
            <?php echo $enabled=Yii::app()->authManager->checkAccess($data->name,$model->id)?> 
              <li>      
                    <h4><?php echo $data->name ?>
                          <small>
                              <?php if($data->type==0) echo "Role"; ?>

                          </small>
                          <?php echo CHtml::link($enabled?"Retirar":"Asignar",array("user/assign","id"=>$model->id,"item"=>$data->name),
                                array("class"=>$enabled?"btn btn-primary":"btn")); ?>
                      </h4>
                      <p><?php echo $data->description?></p>
                      <hr>
              </li>
            <?php endforeach; ?>
      </ul>
    </div>
</div>


pero en yii2 la funcion getAuthItems no existe y no encontre alternativa a ella, pero bueno ya resolvi, gracias nuevamente, si conoces una forma de emular la funcion getAuthItems en yii2 hazmelo saber.


View PosterickMartinez, on 20 January 2015 - 12:35 PM, said:

pues yo te aconsejaría:

Opción 1 : Crear un roll standar para los usuarios que se registren (el roll se asigna automáticamente al crearse el usuario sin ningún tipo de botón) de tal forma que el admin pueda luego entrar a modificar el roll del usuario y ajustarlo a sus funciones. En esta opcion tendrias que ir a tu action create en tu controlado, luego de recibir los datos por POS de tu modelo usuarios tendrias q hacer un insert en el modelo de los rolles de tal manera q al id del usuario q se acaba de registrar le asignes por defecto un roll.

Opción 2: Antes de guardar validar la función del que se esta registrando de tal manera que se le asigne un roll especifico a determinada función por ejemplo: si el usuario elige como función "cajero" se le asignara un roll de "operador". En esta opcion debes hacer una validacion de un campo "funcion" para luego poder hacer el insert en el modelo de roll acorde a la funcion q desempeña el usuario registrado


Espero haberme hecho entender ayudaría un poco mas si posteas un poco del código (tu controlador de los usuarios, el modelo donde se asigna los roles y por ultimo el formulario de los usuarios).

0

#4 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 237
  • Joined: 11-July 13

Posted 22 January 2015 - 12:08 PM

$auth = Yii::$app->authManager;
$rol = $auth->getRole('administracion'); --> obtienes el objeto rol
$permisos = $auth->getPermissionsByRole('administracion'); --> obtienes un array de los permisos, en este caso del rol administracion.

en Yii 1.1.x los items son la suma de los elementos rol + permisos que hay en Yii 2.0.x
$rol = $auth->getRoles(); --> obtienes un array con los roles en el sistema
$permisos = $auth->getPermissions(); --> obtienes un array con todos los permisos del sistema

Tienes más métodos en la documentación. rbac
0

#5 User is offline   vanhelvzla 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 21
  • Joined: 01-November 14

Posted 27 January 2015 - 07:17 AM

Amigo te recomiendo la extension yii2-admin hay mucha documentacion y funciona perfectamente, ademas de poder extender sus controladores, modelos y vistas para que tu mismo lo personalices a tu gusto,

Saludos,

Wilmer.

yii2-admin

Attached File(s)


0

#6 User is offline   epulgaron 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 168
  • Joined: 19-February 14

Posted 27 January 2015 - 03:13 PM

amigo trate con eso pero no entiendo como es que le debo agregar las reglas a la hora de crear los roles, en fin me fue enrredado pq sinceramente cambió un poco el rbac de yii al de yii2 y todavia no lo cojo del todo.

View Postvanhelvzla, on 27 January 2015 - 07:17 AM, said:

Amigo te recomiendo la extension yii2-admin hay mucha documentacion y funciona perfectamente, ademas de poder extender sus controladores, modelos y vistas para que tu mismo lo personalices a tu gusto,

Saludos,

Wilmer.

yii2-admin

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