Saltar al contenido principal

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)NombreAcceso
ADMINAdministradorAcceso completo. Al asignarlo se otorgan automáticamente los demás roles estándar y la variante avanzada de los pares exclusivos.
MANAGERManager / GerenteComercial, financiero, reportes y vista de configuraciones.
EXECUTIVEEjecutivoMódulos comerciales (cotizaciones, sus OC, sus comisiones).
EXECUTIVE_ADVANCEDEjecutivo AvanzadoVariante avanzada del ejecutivo (par exclusivo con EXECUTIVE).
BILLERFacturadorFacturación y documentos tributarios.
STOREKEEPERBodegueroInventario, recepción, despachos.
STOREKEEPER_ADVANCEDBodeguero AvanzadoVariante avanzada del bodeguero (par exclusivo con STOREKEEPER).
FINANCE_MANAGERGerente FinancieroGestión financiera.

Pares exclusivos

Algunos roles vienen en pares normal / avanzado de los que solo se puede elegir una variante a la vez:

  • EXECUTIVEEXECUTIVE_ADVANCED
  • STOREKEEPERSTOREKEEPER_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:

AtributoQuiénAlcance
adminAdministrador de plataforma de MarkoTodas las empresas, incluidos sus datos operativos. Ver Administración de Plataforma
staffEquipo comercial interno de MarkoTodas 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


⬅️ Volver al índice del módulo