67 Listar asignaciones de permisos en el curso de Sistema de Gestión Escolar(PHP y MySql)FullStack

Duración: 16 min
Módulo: 🤝 Asignación de Permisos Lección 4 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

Lección 67: Listado y Consolidación de Asignaciones de Permisos 📝

Esta lección se centró en la implementación de la función LEER (READ) para mostrar dentro del modal la lista de permisos que ya han sido asignados a un rol específico, resolviendo el problema de la visualización inmediata de la configuración de seguridad.

1. Corrección Crucial en el Modelo de Datos 🛠️

Antes de listar, se identificó un error en la tabla de asignación creada previamente.

  • El Problema: La tabla roles_permisos no tenía las claves foráneas (Foreign Keys) definidas correctamente para enlazar el rol_ID con la tabla roles y el permiso_ID con la tabla permisos [00:30].
  • La Solución: La tabla fue eliminada y recreada con las relaciones de clave foránea necesarias. Esta corrección es vital para poder ejecutar consultas complejas (JOIN) que traigan los nombres de los roles y permisos [01:30].

2. Desarrollo del Listado de Asignaciones 🔎

Para mostrar la información consolidada dentro del modal, fue necesario crear un controlador y una consulta avanzada.

A. Controlador y Consulta SQL

  • Se creó el controlador listado_roles_y_permisos.php [04:59].
  • La consulta utiliza INNER JOIN para relacionar tres tablas:
    • roles_permisos: La tabla de asignaciones.
    • permisos: Para obtener el nombre de la URL asignada.
    • roles: Para obtener el nombre del rol [05:51].

B. Lógica de Filtrado Condicional (El Desafío)

El desafío es que la consulta trae todos los permisos asignados en el sistema, pero solo se debe mostrar la lista correspondiente al rol en el modal activo.

  • Filtro por ID: Se utiliza una sentencia if dentro del bucle de resultados (foreach) para filtrar la lista [12:14].
  • Condición: Solo si el ID_rol del modal activo (el rol que estamos configurando) coincide con el rol_ID de la asignación actual en la base de datos, se imprime la fila [12:29].

C. Visualización

Dentro del modal, se muestra la tabla de asignaciones, visualizando los siguientes datos para el rol seleccionado:

  • Rol Asignado (ej. "Director Académico") [13:36].
  • Permiso Asignado (El nombre_URL de la ruta, ej. "docentes_index") [14:05].
  • Acción: Se reserva una columna para el botón de Eliminar (la acción DELETE) [15:00].

3. Próximo Paso: Recarga Dinámica 🔄

Actualmente, después de asignar un permiso vía AJAX (Lección 66), el listado recién implementado no se actualiza automáticamente.

  • Objetivo: La próxima lección se centrará en modificar el código AJAX para que, después de una inserción exitosa, la tabla de asignaciones se recargue automáticamente sin refrescar toda la página [15:23].