Skip to content

Rutas

El paquete esta diseñado para que usted establezca permisos en un unico punto, este lugar le servira como seeder de su aplicacion y como middleware automaticamente, adicionalmente se vinculara con el archivo de navegacion como se explica en la seccion de navegacion, asi puede generar una ruta con permisos en base de datos rutas y vistas de navegacion en un unico lugar.

Para sincronizar los datos de los permisos en base de datos asignarlo a los roles que ha configurado en su archivo de configuracion ejecute:

Terminal window
php artisan rk:access

Se sincronizaran los permisos y usted podra ver los cambios aplicados correctamente.

La asignación de permisos por tipo depende de la estructura de la clave de roles. Existen diferentes formatos para asignar permisos:

Todos los roles reciben el permiso de acceso a la ruta:

RkRoute::make('id_ruta')
->setAccessPermission('acceder-admin-general')
->setRoles(['admin_general', 'supervisor'])

Cuando se define una clave de rol con un arreglo, ese rol recibe los permisos específicos además del permiso de acceso:

RkRoute::make('id_ruta')
->setAccessPermission('acceder-admin-general')
->setPermissions(['eliminar', 'editar', 'listar'])
->setRoles([
'admin_general',
'supervisor' => ['eliminar', 'editar']
])

En este ejemplo:

  • El rol admin_general recibe el permiso de acceso acceder-admin-general y todos los permisos definidos en setPermissions
  • El rol supervisor recibe el permiso de acceso acceder-admin-general y únicamente los permisos eliminar y editar

Los permisos específicos asignados a un rol deben existir en la lista de setPermissions.

Para rutas que no requieren autenticación, simplemente omita el setAccessPermission:

RkRoute::make('id_ruta_publica')
->setParentId('public')
->setUrlMethod('get')
->setUrlController('App\Http\Controllers\PublicController')
->setRoles([])

Cuando una ruta es pública, no se agrega ningún permiso y la ruta queda accesible sin restricciones de autenticación.

Suponga la siguiente ruta:

RkRoute::make('id_ruta')
->setParentId('admin_general')
->setAccessPermission('acceder-admin-general')
->setUrlMethod('get')
->setUrlController('App\Livewire\Central\Acceso\Permiso\ListPermisos')
->setRoles(['admin_general'])
->setItems([])
->setEndBlock('id_ruta'),

La ruta creada genera por defecto el atributo setAccessPermission el cual se usa como middleware para acceder a la ruta y los roles configurados en setRoles recibiran ese permiso al sincronizarlo con el comando php artisan rk:access.