Autenticación y Control de Acceso
Gestión de identidad con Better Auth y sistema de roles dinámicos por organización.
Seguridad y Acceso
El sistema utiliza Better Auth para gestionar la identidad de los usuarios y las sesiones seguras. La arquitectura es Multi-tenant, lo que significa que un mismo usuario puede pertenecer a múltiples organizaciones, pero los permisos son aislados y específicos para cada una.
Autenticación (Login)
El proceso de inicio de sesión sigue los estándares modernos de seguridad web.
- Proveedor: Correo electrónico y contraseña.
- Sesión: Manejo seguro de tokens y cookies via Better Auth.
Recuperación de Cuenta
Actualmente, no existe un flujo automatizado de recuperación de contraseña (Forgot Password).
Si un usuario pierde su acceso, debe contactar a un Administrador de la Organización o al soporte técnico para realizar un restablecimiento manual de credenciales.
Control de Acceso Dinámico (RBAC)
A diferencia de sistemas tradicionales con roles fijos (ej. Admin y Usuario), Emporio implementa un Control de Acceso Dinámico.
Esto permite que los Dueños de la Organización diseñen su propia estructura de seguridad definiendo qué puede ver y hacer cada empleado.
¿Cómo funciona?
El sistema se basa en la intersección de tres conceptos:
- Recurso: La pantalla o acción a proteger (ej. Ver Inventario, Crear Factura, Eliminar Usuario).
- Rol: Una etiqueta personalizada creada por la organización (ej. "Vendedor Senior", "Contable Externo").
- Permiso: La asignación de acceso de un Rol a un Recurso.
Flujo de Configuración
Para configurar la seguridad de una organización, el dueño debe seguir estos pasos en el módulo de Equipo:
Crear el Rol
Navegar a Equipo > Roles. Aquí se define el nombre del rol funcional (ej. "Almacenista").
Asignar Permisos
Al crear o editar el rol, se presentará una lista de "toggles" o interruptores. Cada uno representa una acción en el software.
Ejemplo: Activar "Ver Productos" pero desactivar "Ver Costos de Productos".
Asignar Rol al Miembro
Navegar a Equipo > Miembros. Al invitar o editar un usuario, se le asigna uno de los roles creados previamente.
Arquitectura de Permisos
El control de acceso se verifica en dos niveles:
-
A nivel de UI (Frontend): Los componentes de la interfaz se ocultan o deshabilitan si el rol del usuario actual no tiene el permiso necesario.
Ejemplo: El botón "Crear Nuevo Proyecto" no aparecerá para un usuario con rol "Observador".
-
A nivel de Servidor (Backend): Las
Server Actionsy rutas de API verifican la sesión y los permisos del rol antes de ejecutar cualquier transacción de base de datos, garantizando que nadie pueda bypassear la seguridad mediante llamadas directas a la API.