72 Autorizar páginas segun los roles y permisos del Sistema de Gestión Escolar(PHP y MySql)FullStack

Duración: 16 min
Módulo: 🚦 Autorización de Vistas Lección 3 de 6

¡Contenido Exclusivo!

Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.

Inscribirse Ahora por $20.00 Acceso instantáneo de por vida y código fuente incluido.

Descripción

La Lección 72 marca el paso final en la implementación de la seguridad basada en roles y permisos, resolviendo la vulnerabilidad donde los usuarios podían acceder a rutas no autorizadas tecleando la URL directamente.

Aquí está el resumen de la implementación:

1. Implementación de la Restricción de Acceso por Ruta 🛑

La lección se centró en modificar la lógica de verificación de permisos para que, en lugar de solo mostrar un mensaje de "no autorizado", el sistema redirija inmediatamente al usuario a una página de error dedicada.

IconoDescripción
💻Ubicación: La lógica se mantuvo en el archivo de layout/parte_1.php (donde se comprueba la sesión y se procesan las rutas) [01:09].
🔢Lógica del Contador: Se utiliza el $contador_permiso (introducido en la Lección 70). Este contador es 1 si la ruta actual coincide con alguno de los permisos del rol, y 0 si no hay coincidencia [25:07].
➡️Redirección Final: Si el contador es cero ($contador_permiso == 0), el sistema ejecuta una función de PHP para redirigir (header()) al usuario a una nueva vista de error [09:12].

Resultado: Al intentar acceder a una ruta no autorizada (como un Docente tratando de ir a /admin/roles), el usuario es enviado automáticamente a la página de error en lugar de ver el contenido del sistema.

2. Solución para la Ruta Principal (Dashboard) 🏠

Se identificó que la ruta principal (index.php) del sistema no estaba siendo autorizada, lo que causaba un mensaje de "no autorizado" incluso al iniciar sesión.

  • El Problema: El dashboard no se había registrado como un permiso en la base de datos [04:19].
  • La Solución: Se creó un nuevo permiso llamado principal en la tabla de permisos [06:45]. Este permiso se asignó a todos los roles (Administrador, Director, Docente, Estudiante, etc.) para que todos tuvieran acceso autorizado al dashboard central al iniciar sesión [07:01].

3. Creación de la Página "No Autorizado" ⚠️

Para una mejor experiencia, se creó una vista de error específica, eliminando el simple mensaje de texto.

  • Vista Creada: Se creó el archivo admin/no_autorizado.php [08:56].
  • Diseño: Se utilizó Bootstrap para darle un diseño simple pero visualmente claro.
  • Mensaje: Muestra un mensaje conciso: "Esta acción no está autorizada para este usuario" [14:10].
  • Imagen: Se incluyó una imagen alusiva para indicar visualmente la restricción [12:48].

4. Próximo Paso 🔜

El módulo de roles y permisos queda totalmente funcional y seguro. El siguiente paso será trabajar en la identificación y personalización de datos del usuario genérico en el sistema, asegurando que el dashboard y otros elementos muestren información correcta para cada tipo de usuario (por ejemplo, los datos del Docente, del Director, etc.) [15:38].