Gestión de usuarios¶
Disponible para: Owner (gestión a nivel inquilino), Platform Admin (gestión global)
Los usuarios en Hardhat Flow están acotados al inquilino. Cada usuario pertenece a exactamente un inquilino y tiene exactamente un rol. La autenticación la maneja Auth0 — no se guardan contraseñas en la base de datos de la aplicación.
Campos del usuario¶
| Field | Description |
|---|---|
email |
Único dentro del inquilino. Usado para inicio de sesión Auth0 y correspondencia. |
first_name |
Nombre del usuario. |
last_name |
Apellido del usuario. |
phone |
Teléfono móvil. Obligatorio para entrega de notificaciones SMS. |
role |
Único rol asignado al usuario. Vea roles abajo. |
avatar_url |
URL opcional de foto de perfil. |
status |
active o inactive. Los usuarios inactivos no pueden iniciar sesión. |
Roles¶
Cada usuario tiene exactamente un rol. Los roles no son combinables.
| Role | Description |
|---|---|
| Platform Admin | Opera la plataforma. No es usuario de inquilino. |
| Owner | Control total en su inquilino: aprobaciones, gestión de usuarios, todos los datos. |
| Accounting | Vista financiera: Invoices, pagos, precios de Bid. No administra Jobs. |
| Project Manager | Crea y administra Bids y Jobs dentro de sus asignaciones. |
| Supervisor | Visibilidad y actualizaciones de campo en Jobs asignados. |
| Badge Worker | Vista limitada solo de Jobs asignados. Sin capacidades de gestión. |
Los cambios de rol quedan en el ActivityLog bajo role_change. Elija roles con cuidado — gobiernan todo el acceso a datos y permisos de API.
Invitar usuarios¶
Los Owners invitan nuevos usuarios al inquilino:
- El Owner va a Users → Invite User.
- Ingresa el correo del nuevo usuario y asigna un rol.
- Se envía correo de invitación vía Auth0.
- El usuario sigue el enlace para configurar su cuenta Auth0.
- En el primer inicio de sesión, su cuenta se sincroniza a la tabla de usuarios del inquilino.
El correo de invitación vence a los 7 días. Si el usuario no completa el registro, el Owner debe reenviar la invitación.
Flujo de solicitud de acceso¶
Las personas que aún no están en el sistema pueden enviar una solicitud de acceso:
- La persona visita la URL de inicio de sesión del inquilino y selecciona Request Access.
- Ingresa nombre, correo y motivo de la solicitud.
- El Owner recibe notificación de la solicitud pendiente.
- El Owner revisa y aprueba (creando una invitación) o rechaza.
- La persona recibe notificación de la decisión.
Las solicitudes de acceso son útiles para trabajadores de campo y subcontratistas que deben incorporarse sin que el Owner inicie el proceso manualmente.
Integración con Auth0¶
Hardhat Flow usa Auth0 para toda la autenticación. Implicaciones clave:
- No se guardan contraseñas en la base de datos de la aplicación. Las credenciales viven solo en Auth0.
- Los tokens de inicio de sesión son JWT emitidos por Auth0 y validados por la aplicación en cada solicitud.
- Restablecimiento de contraseña, inicio de sesión social y MFA se administran en Auth0.
- El registro de usuario de la aplicación se sincroniza desde Auth0 al iniciar sesión (correo, nombre, avatar).
Requisitos de MFA¶
La autenticación multifactor (MFA) es obligatoria para dos roles:
- Owner — requerida en cada inicio de sesión.
- Platform Admin — requerida en cada inicio de sesión.
Los demás roles pueden habilitar MFA opcionalmente en su cuenta Auth0, pero no es obligatorio.
El cumplimiento de MFA se configura en el inquilino Auth0. Desactivarlo para Owner o Platform Admin requiere acceso de administrador Auth0 y se desaconseja.
Activar y desactivar usuarios¶
Los Owners pueden desactivar cualquier usuario de su inquilino:
- Poner
status = inactiveimpide el inicio de sesión de inmediato. - La cuenta Auth0 del usuario también se bloquea como parte de esta acción.
- Los usuarios desactivados conservan todos sus registros históricos, asignaciones y entradas del ActivityLog.
- La reactivación restaura el acceso.
La desactivación no es eliminación. Todos los datos del usuario se conservan. Solo Platform Admin puede iniciar eliminación lógica de un registro de usuario.
Teléfono y SMS¶
El campo phone en el registro de usuario es obligatorio para la entrega de notificaciones SMS.
- Sin número de teléfono, cualquier SMS dirigido a ese usuario se omite en silencio.
- Se registra una advertencia cada vez que una notificación no puede enviarse por falta de teléfono.
- Los Owners deben asegurar que todas las cuentas de PM, Supervisor y Owner tengan un teléfono válido.
Recopile números telefónicos durante la incorporación para no perder notificaciones desde el primer día.