55 Panel administrador y usuario con roles y permisos en el curso de LARAVEL (PHP y MySql) FullStack

Duración: 16 min
Módulo: 👑 Roles, Permisos y Panel de Control Lección 4 de 4

Descripción

💻 Lección 55: Panel Administrador y Usuario con Roles y Permisos

Este capítulo se centra en la revisión final del sistema, implementando la lógica de autorización en el dashboard para diferenciar la experiencia del Administrador de la del Usuario Normal, completando así el módulo de Roles y Permisos.

1. 📊 Implementación de Estadísticas del Administrador

El instructor modifica el panel principal (dashboard) para que el administrador pueda tener una vista de las estadísticas globales del sistema:

  • Recuperación de Datos: Se modifica el AdminController para obtener el conteo total de tres entidades clave en la base de datos:
    • Usuarios (ya existente).
    • Carpetas (Carpetas::all()) [03:38].
    • Archivos (Archivos::all()) [08:11].
  • Cards de Información: Se crean widgets (tarjetas) en la vista del dashboard (admin.index) para mostrar estas estadísticas de forma clara: Usuarios Registrados, Carpetas Creadas y Archivos Creados [04:40].

2. 🛡️ Restricción de Vistas con Directivas @can

Para evitar que los usuarios normales vean estadísticas sensibles del sistema, se aplica la directiva @can directamente a los widgets del dashboard:

  • Autorización de Vistas: Las tres tarjetas de estadísticas se envuelven en una directiva @can('usuarios.index') [07:30].
  • Resultado Final:
    • El Administrador (con el permiso usuarios.index) visualiza el panel de estadísticas completo [07:43].
    • El Usuario Normal (sin el permiso) ve un panel vacío o solo su vista de "Mi Unidad", ya que la información del sistema se oculta por completo [09:59].

3. ✅ Corrección de Asignación de Rol

Se corrige un detalle crucial en la funcionalidad de creación de usuarios desde el panel de administración:

  • Corrección: Se modifica el método store del UsuariosController para que, inmediatamente después de la creación de un nuevo usuario, se le asigne por defecto el rol de usuario ($usuario->assignRole('usuario')) [11:49].
  • Verificación: Se comprueba que el nuevo usuario creado ingresa al sistema con su área de "Mi Unidad" vacía y sin acceso a las funciones administrativas [12:30].

4. 🚀 Próximos Pasos

El instructor declara el módulo de roles y permisos como finalizado.

  • Ajustes Estéticos: Se realizan pequeños cambios visuales, como cambiar el nombre del layout a "Sistema de Gestión de Archivos" [02:17] y agregar iconos a las tarjetas de carpetas y archivos [15:15].
  • Siguiente Capítulo: La próxima lección se centrará en la gestión de código, enseñando a los usuarios cómo subir el proyecto a un repositorio de GitHub [15:29].