Rutas
Vinculacion de permisos y rutas
Section titled “Vinculacion de permisos y 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:
php artisan rk:accessSe sincronizaran los permisos y usted podra ver los cambios aplicados correctamente.
Asignación de permisos por roles
Section titled “Asignación de permisos por roles”La asignación de permisos por tipo depende de la estructura de la clave de roles. Existen diferentes formatos para asignar permisos:
Formato básico de rol
Section titled “Formato básico de rol”Todos los roles reciben el permiso de acceso a la ruta:
RkRoute::make('id_ruta') ->setAccessPermission('acceder-admin-general') ->setRoles(['admin_general', 'supervisor'])Formato con permisos específicos
Section titled “Formato con permisos específicos”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_generalrecibe el permiso de accesoacceder-admin-generaly todos los permisos definidos ensetPermissions - El rol
supervisorrecibe el permiso de accesoacceder-admin-generaly únicamente los permisoseliminaryeditar
Los permisos específicos asignados a un rol deben existir en la lista de setPermissions.
Rutas públicas
Section titled “Rutas públicas”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.
Ejemplo de ruta completa
Section titled “Ejemplo de ruta completa”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.