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)
hey , my assignment page is empty. it has no data. Where can I add data to?
ResponderEliminarThe assignments are the users, once you have users you are going to be able to assign role to the users
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarTengo 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
EliminarYo también tengo ese problema, si logras resolver me avisas
EliminarHola, si estas desde el frontend por ejemplo sería: http://localhost/frontend/web/rbac/route, los módulos están en el backend:
Eliminarhttp://localhost/backend/web/rbac/route, ahí te deberían aparecer las rutas
Hola felicitaciones por el material, es muy didáctico.
ResponderEliminarsiguiendo los pasos tal como los indicas no he podido lograr ver las paginas del rbac.
http://localhost/yii2_proyecto/backend/web/rbac/route
Gracias, está sencillamente explicado
ResponderEliminar