Buscar en la documentación

Crear una persona

Alta de una cuenta con su rol, sin que nadie le defina la contraseña, con la jerarquía de roles y la reautenticación cuando el rol es sensible.

Módulo users1 min de lecturaVer en GitHub

Quien administra (users.create) crea la cuenta con nombres, apellidos, correo y rol. Nadie le define la contraseña: la cuenta nace con una aleatoria y la persona recibe un correo de bienvenida que la lleva a crear la suya con “¿Olvidaste tu contraseña?”. Solo se puede dar un rol por debajo del propio nivel.

Diagrama6 carriles · 11 pasos · 3 salidas de error
SíNoSíNoSíNoSíNoLlena nombres,apellidos, correo yrol1Envía POST /userscon Idempotency-Key2¿Tieneusers.create?3Responde 403¿Datos válidosy correolibre?4Responde 422 porcampo¿El rol estápor debajo desu nivel?5Responde 422 rolno asignable¿El rol traepermisossensibles?6Confirma con sucódigo7Crea la cuenta concontraseñaaleatoria8Envía el correo debienvenida9Crea su contraseñacon el código delcorreo10Ingresa y configurasu MFA11
Los números coinciden con el paso a paso. En pantallas pequeñas el diagrama se desliza de lado.

Paso a paso

  1. AdministraciónLlena nombres, apellidos, correo y rol

    En /administracion/usuarios/nuevo. Solo se ofrecen los roles que puede dar (GET /roles, assignable).

  2. NavegadorEnvía POST /users con Idempotency-Key
  3. API¿Tiene users.create?

    El permiso se revisa antes de validar los campos, para que nadie sin permiso pueda averiguar qué correos existen.

  4. API¿Datos válidos y correo libre?

    Nombres y apellidos de hasta 80 caracteres cada uno; correo normalizado (minúsculas y sin espacios), válido y no registrado.

  5. API¿El rol está por debajo de su nivel?

    Niveles como dato (roles.level): Solicitante 20, Agente 40, Supervisor 60, Administrador 80, Super admin 100. El Super admin puede dar cualquiera.

  6. API¿El rol trae permisos sensibles?

    Permisos de los módulos de usuarios, roles o sistema. Si los trae, pide el código de la aplicación de quien administra, como en "Cambiar rol o permisos".

  7. AdministraciónConfirma con su código
  8. Base de datosCrea la cuenta con contraseña aleatoria

    En la misma transacción, admin_actions (user_created) con nombre, correo y rol. users.name es una columna calculada de nombres + apellidos.

  9. CorreoEnvía el correo de bienvenida

    Por la cola, cifrado mientras espera. Explica cómo entrar y lleva a /recuperar.

  10. Persona nuevaCrea su contraseña con el código del correo

    El mismo flujo de "Recuperar la contraseña".

  11. Persona nuevaIngresa y configura su MFA

    Con el ingreso de gracia de su rol.

Qué ve la persona en cada error

CódigoHTTPCuándoMensaje en pantalla
ALREADY_TAKEN (campo email)422El correo ya está registradoEste valor ya está en uso. Prueba con otro.
ROLE_NOT_ASSIGNABLE422El rol es de su nivel o superiorNo puedes dar ese rol: solo puedes asignar roles por debajo del tuyo.
REAUTHENTICATION_REQUIRED422El rol es sensible y no llegó el código; abre el diálogo del códigoPara confirmar este cambio, escribe el código de tu aplicación de autenticación.
FORBIDDEN_ACTION403Sin users.createNo tienes permiso para hacer esta acción. Si crees que deberías tenerlo, habla con un administrador.

Dónde está en el código