RBAC Yii2 utilizando la extensión "yii2mod/yii2-rbac": "*"

Les muestro como hacer la configuración del módulo de RBAC en Yii2 utilizando una extensión que nos va a facilitar mucho la creación de los permisos y roles. 

1.- Colocar en el composer.json

    "yii2mod/yii2-rbac": "*"

2.- Ejecutar en el cmd de la carpeta del proyecto

    composer update --prefer-dist 

3.- Añadir en el common/config/main.php dentro de modules

        'rbac' => [

            'class' => 'yii2mod\rbac\Module',

        ],

4.- En el common/config/main.php dentro de components:

          'authManager' => [

            'class' => 'yii\rbac\DbManager',

            'defaultRoles' => ['guest', 'user'],

        ],

 

5.-Ejecutar en el cmd de la carpeta del proyecto:

php yii migrate/up --migrationPath=@yii/rbac/migrations

** Este código nos va a añadir las tablas a la base de datos, importante no tener creada las tablas

auth_item

auth_item_child

auth_assignment

auth_rule

6.- Añadir en el frontend/config/main.php en el i18n en el array de translations

        'yii2mod.rbac' => [

                    'class' => 'yii\i18n\PhpMessageSource',

                    'basePath' => '@common/messages',

                    'sourceLanguage' => 'en-US',

                ],

7.- Buscar el archivo de traducción del widget \vendor\yii2mod\yii2-rbac\messages\en\yii2mod.rbac y copiarnos a la carpeta de traducción (common/messages/es), y hacer la traducción respectiva al idioma que necesitamos.

8.- Las direcciones para acceder:

http://localhost/yii2-proyecto/yii2-proyecto/frontend/web/rbac/route

http://localhost/yii2-proyecto/yii2-proyecto/frontend/web/rbac/permission

http://localhost/yii2-proyecto/yii2-proyecto/frontend/web/rbac/role

http://localhost/yii2-proyecto/yii2-proyecto/frontend/web/rbac/assignment

*** Antes de pasar al paso 9 deben crear las rutas, permisos, roles y asignaciones para que sea mas sencillo una vez que se elimine el acceso ***

9.- En el frontend/config/main debajo de components


   'as access' => [

        'class' => yii2mod\rbac\filters\AccessControl::class,

        'allowActions' => [

            'site/login',

            'site/logout',

         

        ]

     ],


 10.- Leer la documentación del Widget:

 https://github.com/yii2mod/yii2-rbac


Pueden ver el proceso completo en mi canal de YouTube: 

https://youtu.be/PMun-QmxGWU (Parte 1)

https://youtu.be/k0-zfUFJDcM  (Parte 2)


Comentarios

  1. hey , my assignment page is empty. it has no data. Where can I add data to?

    ResponderEliminar
  2. The assignments are the users, once you have users you are going to be able to assign role to the users

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Tengo una duda con respecto a las rutas, por ejemplo, mi url es http://mahekalyii2.com/rbac/route, si puedo visualizar la interfaz, pero en la selección de rutas no me aparecen las otras páginas, por ejemplo el de "Crear usuario" o el resto de páginas que tengo hecho, solo muestra las que están en /rbac, /rbac/role, /rbac/route, rbac/assingment... ¿Cómo puedo solucionarlo?. Pdt: Muchas gracias por los videos, son de gran ayuda

      Eliminar
    2. Yo también tengo ese problema, si logras resolver me avisas

      Eliminar
    3. Hola, si estas desde el frontend por ejemplo sería: http://localhost/frontend/web/rbac/route, los módulos están en el backend:
      http://localhost/backend/web/rbac/route, ahí te deberían aparecer las rutas

      Eliminar
  4. Hola felicitaciones por el material, es muy didáctico.
    siguiendo los pasos tal como los indicas no he podido lograr ver las paginas del rbac.
    http://localhost/yii2_proyecto/backend/web/rbac/route

    ResponderEliminar
  5. Gracias, está sencillamente explicado

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

AdminLTE3 integración Yii2

Integración AdminLTE2 Yii2