72 Autorizar páginas segun los roles y permisos del Sistema de Gestión Escolar(PHP y MySql)FullStack
Duración: 16 min¡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.
| Icono | Descripció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].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️