Files
gkachele-saas/memoria/SISTEMA_ROLES.md
2026-01-17 11:40:17 +01:00

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
  • status (TEXT): Estado del usuario
    • Valores: active, inactive, suspended
    • Default: active

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