Usuarios y Roles
Gestión de cuentas de usuario, asignación de roles por empresa y perfiles personalizados.
Descripción
Sistema de control de acceso basado en roles (RBAC). Marko es multi-empresa: un mismo usuario puede tener roles distintos en cada empresa a la que pertenece. Las cuentas se gestionan en la pestaña Cuentas y los perfiles personalizados en Perfiles de Usuario.
Roles del Sistema
Los roles se guardan en Firestore en mayúsculas con guion bajo, por empresa (roles[companyId] = ["ADMIN", "BILLER", ...]):
| Rol (clave) | Nombre | Acceso |
|---|---|---|
ADMIN | Administrador | Acceso completo. Al asignarlo se otorgan automáticamente los demás roles estándar y la variante avanzada de los pares exclusivos. |
MANAGER | Manager / Gerente | Comercial, financiero, reportes y vista de configuraciones. |
EXECUTIVE | Ejecutivo | Módulos comerciales (cotizaciones, sus OC, sus comisiones). |
EXECUTIVE_ADVANCED | Ejecutivo Avanzado | Variante avanzada del ejecutivo (par exclusivo con EXECUTIVE). |
BILLER | Facturador | Facturación y documentos tributarios. |
STOREKEEPER | Bodeguero | Inventario, recepción, despachos. |
STOREKEEPER_ADVANCED | Bodeguero Avanzado | Variante avanzada del bodeguero (par exclusivo con STOREKEEPER). |
FINANCE_MANAGER | Gerente Financiero | Gestión financiera. |
Pares exclusivos
Algunos roles vienen en pares normal / avanzado de los que solo se puede elegir una variante a la vez:
EXECUTIVE↔EXECUTIVE_ADVANCEDSTOREKEEPER↔STOREKEEPER_ADVANCED
Roles solo de la App Móvil
Se asignan en una sección aparte ("Solo App Móvil"):
DELIVERY— Repartidor.SUBMIT_EXPENSE— Registrar Gastos.
Acceso transversal: admin y staff
Dos atributos del documento de cuenta quedan fuera del sistema de roles por empresa, porque no dependen de ninguna:
| Atributo | Quién | Alcance |
|---|---|---|
admin | Administrador de plataforma de Marko | Todas las empresas, incluidos sus datos operativos. Ver Administración de Plataforma |
staff | Equipo comercial interno de Marko | Todas las empresas, solo datos comerciales: el CRM Comercial y, en Configuración, la pestaña Empresas acotada al plan y al Acuerdo de Servicio |
Ninguno de los dos se marca desde esta pantalla: se escriben directamente en accounts/{uid}. Una cuenta staff no debe tener roles en ninguna empresa. Ver Rol Staff para el alcance completo, las reglas de Firestore y la auditoría.
Cuentas (AccountsComponent)
Ruta: /company-settings → pestaña Cuentas
Listado de usuarios con búsqueda por nombre o correo y, para administradores, filtro por empresa. La tabla muestra: Nombre (con badge ADMIN si corresponde), Correo, Estado (Activo/Inactivo), Fecha de creación y Acciones.
Crear usuario
Formulario con: Nombre (obligatorio), Email (obligatorio), Cargo (opcional), Teléfono (opcional) y casilla admin (solo visible para administradores). El sistema crea la cuenta vía función registerCustomer con una contraseña temporal.
Acciones por usuario
- Editar datos — nombre, email, cargo, teléfono.
- Administrar roles — abre el modal de gestión de roles por empresa.
- Resetear contraseña — envía email de recuperación (Firebase Auth).
- Habilitar / Deshabilitar usuario — alterna el estado activo.
- Eliminar cuenta (solo admin).
Gestión de roles por empresa
En el modal "Gestión de Permisos y Roles":
- Agregar empresa — añade una empresa a la que el usuario tendrá acceso e inicializa sus roles.
- Por cada empresa se marcan los roles con casillas (con indicador de color). Los pares exclusivos muestran un selector Normal/Avanzado.
- Marcar ADMIN asigna automáticamente todos los roles estándar y la variante avanzada de los pares exclusivos.
- Remover Acceso quita a la empresa del usuario.
- Al Guardar se actualizan los roles (función
updateUserRoles) y se ajusta la empresa activa.
Perfiles de Usuario (ProfilesComponent)
Ruta: /company-settings → pestaña Perfiles de Usuario (solo Admin)
Perfiles personalizados que la empresa define para etiquetar/organizar usuarios. Campos:
- Nombre (obligatorio)
- Clave / slug (obligatorio) — solo mayúsculas y guion bajo (patrón
^[A-Z_]+$), única. - Descripción (opcional)
- Ícono — selector con 15 opciones: Usuario (
fa-user), Ejecutivo (fa-users), Manager (fa-cog), Facturador (fa-calculator), Repartidor (fa-truck), Administrador (fa-shield), Supervisor (fa-eye), Equipo (fa-group), Gerente (fa-briefcase), Técnico (fa-wrench), Soporte (fa-phone), Analista (fa-bar-chart), Editor (fa-edit), Seguridad (fa-key), Finanzas (fa-money). - Color — selector de color (por defecto
#5e72e4).
Operaciones: Crear, Editar y Eliminar perfil. Tanto el nombre como la clave deben ser únicos (al editar se permite conservar los propios).
Perfil Personal
Ruta: /profile
Cada usuario puede gestionar su foto, sus datos de contacto y cambiar su contraseña.
Autenticación
Marko usa Firebase Authentication: login con email y contraseña, recuperación de contraseña por email y sesión persistente.
Gestión de Empresas
La creación y administración de empresas de la plataforma (planes, créditos, config, estado de pago) se realiza desde la pestaña Empresas, reservada a administradores de plataforma. Ver Administración de Plataforma → Gestión de Empresas.
Enlaces Relacionados
- Mi Empresa
- Rol Staff
- CRM Comercial
- Administración de Plataforma
- Configuración General
- Dashboard Comercial