1.9 KiB
1.9 KiB
🔐 Sistema de Roles y Permisos - GKACHELE™
© 2025 GKACHELE™. Todos los derechos reservados.
📋 Arquitectura Basada en Base de Datos
Todo el sistema de roles y permisos está 100% en la base de datos, sin lógica hardcodeada.
Tabla: users
Campos relacionados con roles:
role(TEXT): Rol del usuario- Valores posibles:
administrator,editor,author,subscriber - Default:
subscriber
- Valores posibles:
status(TEXT): Estado del usuario- Valores:
active,inactive,suspended - Default:
active
- Valores:
Jerarquía de Roles
administrator (nivel 4) - Acceso total
↓
editor (nivel 3) - Puede editar contenido
↓
author (nivel 2) - Puede crear contenido
↓
subscriber (nivel 1) - Solo lectura
Funciones Helper
user_has_role(user_id, required_role)
Verifica si un usuario tiene un rol específico o superior.
Uso:
if user_has_role(session['user_id'], 'administrator'):
# Usuario es admin o superior
user_can(user_id, capability)
Verifica si un usuario tiene una capacidad específica.
Uso:
if user_can(session['user_id'], 'manage_users'):
# Usuario puede gestionar usuarios
Rutas Protegidas
Todas las rutas administrativas verifican el rol desde la base de datos:
@app.route('/admin')
def admin():
if not user_has_role(session['user_id'], 'administrator'):
return "Solo administradores", 403
# ...
Creación de Usuario Administrador
El primer usuario (ID=1) se crea automáticamente como administrator:
- Email:
admin@gkachele.com - Password:
admin123(cambiar después) - Role:
administrator
Migración Automática
Si la tabla users no tiene las columnas role y status, se añaden automáticamente al iniciar la aplicación.
Última actualización: 14 Enero 2025
Hash: gkachele-roles-db-20250114