control de acceso basado en roles - ManuelJDonoso/Proyecto_daw GitHub Wiki
Control de Acceso Basado en Roles
Propósito y Alcance
Este documento describe el sistema de Control de Acceso Basado en Roles (RBAC) implementado en Crónicas de Mérida. Explica la jerarquía de roles, la estructura de permisos y cómo se aplica el control de acceso en toda la aplicación. Esta página se centra específicamente en las definiciones de roles y sus capacidades, no en el proceso de autenticación (para obtener información sobre el inicio de sesión y el registro, consulte el Sistema de Autenticación).
Visión General
Crónicas de Mérida implementa un sistema jerárquico de control de acceso basado en roles que define qué acciones pueden realizar los usuarios según su rol asignado. El sistema consta de cuatro roles distintos con privilegios crecientes, desde visitantes anónimos hasta administradores completos.
Jerarquía de Roles
La aplicación sigue una estructura jerárquica de roles donde cada rol superior hereda todos los permisos de los roles inferiores mientras gana capacidades adicionales.
Diagrama de Jerarquía de Roles
Implementación de Roles
El sistema RBAC se implementa a través de una jerarquía de clases en la capa de modelo de la aplicación. Una clase base Usuario
define propiedades y métodos comunes, con clases de roles específicos que la extienden.
Diagrama de Herencia de Clases
Capacidades de los Roles
Cada rol en el sistema tiene capacidades específicas que determinan qué acciones pueden realizar los usuarios.
Matriz de Permisos
Capacidad | Visitante | Jugador | Moderador | Administrador |
---|---|---|---|---|
Ver contenido | ✓ | ✓ | ✓ | ✓ |
Crear cuenta | ✓ | ✓ | ✓ | ✓ |
Acceder al perfil | ✗ | ✓ | ✓ | ✓ |
Registrarse en eventos | ✗ | ✓ | ✓ | ✓ |
Crear eventos | ✗ | ✗ | ✓ | ✓ |
Asignar roles | ✗ | ✗ | ✓ | ✓ |
Eliminar usuarios de eventos | ✗ | ✗ | ✓ | ✓ |
Eliminar eventos | ✗ | ✗ | ✓ | ✓ |
Gestionar todos los usuarios | ✗ | ✗ | ✗ | ✓ |
Eliminar usuarios | ✗ | ✗ | ✗ | ✓ |
Definiciones de Roles
Visitante
El rol predeterminado para usuarios no autenticados. Los visitantes tienen acceso mínimo al sistema.
Capacidades:
- Ver contenido público
- Crear una cuenta de usuario
- Iniciar sesión en el sistema
Jugador
El rol estándar para miembros autenticados.
Capacidades:
- Todas las capacidades del Visitante
- Registrarse en eventos
- Acceder al perfil personal
- Participar en el foro
- Solicitar ayuda a través del sistema de soporte
Moderador
Los moderadores tienen capacidades mejoradas para gestionar contenido y usuarios.
Capacidades:
- Todas las capacidades del Jugador
- Crear eventos
- Asignar roles a usuarios
- Eliminar usuarios de eventos
- Eliminar eventos
- Responder a solicitudes de ayuda
Administrador
Los administradores tienen control total sobre el sistema.
Capacidades:
- Todas las capacidades del Moderador
- Gestionar todas las cuentas de usuario
- Eliminar cuentas de usuario
- Acceso completo a la administración del sistema
Aplicación del Control de Acceso
El control de acceso basado en roles se aplica en toda la aplicación de varias maneras:
1. Seguimiento de Roles Basado en Sesión
La aplicación inicializa y rastrea los roles de los usuarios a través de la sesión.
2. Elementos de Interfaz Condicionales
La interfaz de usuario muestra diferentes elementos según el rol del usuario.
3. Verificaciones de Permisos a Nivel de Función
Las verificaciones de permisos a nivel de función se implementan mediante métodos booleanos en las clases de usuario.
Proceso de Asignación de Roles
Los administradores y moderadores pueden asignar roles a los usuarios a través de la página assign_role
(nota: hay un error tipográfico en el nombre del archivo). El proceso sigue este flujo:
- El administrador o moderador accede a la página de asignación de roles.
- Selecciona al usuario al que desea asignar un nuevo rol.
- Elige el nuevo rol para el usuario.
- Confirma la asignación, y el sistema actualiza el rol del usuario en la base de datos.
Resumen
El sistema de Control de Acceso Basado en Roles de Crónicas de Mérida implementa una estructura jerárquica de permisos con cuatro roles distintos. Cada rol tiene capacidades claramente definidas, y los roles superiores heredan todas las capacidades de los roles inferiores. Este enfoque garantiza que los usuarios solo puedan acceder a las características adecuadas para su rol dentro de la aplicación