Saltar a contenido

Usuarios

Descripción

Los usuarios son personas que utilizan la plataforma E-Training. Cada usuario se identifica por un email único y tiene asociado un rol, una organización, un E-Mode (modo existencial) y un nivel de conocimiento sobre E-Modes. Ver 01-organizaciones.md, 03-roles.md, 05-modos-existenciales.md y 06-niveles.md.

Reglas fundamentales:

  • Un usuario debe tener un rol y no puede tener más de uno.
  • Un usuario debe pertenecer a una organización y no puede pertenecer a más de una.

Alta, modificación y eliminación (ABM)

Desde la API, los usuarios pueden ser creados, modificados y eliminados (soft) por usuarios autenticados con los permisos adecuados.

  • Alta: Un usuario con permiso puede crear otro usuario en su misma organización. El sistema asigna automáticamente la organización del usuario que crea (desde el token). Se deben indicar email, contraseña, nombre, apellido y rol. El email debe ser único; si ya existe, se devuelve error.
  • Modificación: Se puede actualizar nombre, apellido, rol, estado activo, nivel y contraseña. Solo se envían los campos que se desean cambiar. Los identificadores del usuario (id, email, organización) no son editables.
  • Eliminación: La eliminación es soft: el usuario no se borra de la base de datos, se marca con fecha de eliminación. Los listados y consultas por id no devuelven usuarios eliminados.

Creación de usuarios

Los usuarios no se registran por sí solos en el flujo público. Se crean de estas formas:

  1. Registro de organización: Al crear una organización, se crea simultáneamente el primer usuario (contacto principal). Ver 08-registro.md.
  2. Invitación: La organización invita a usuarios por email; el usuario completa el registro mediante un enlace. Ver 09-invitaciones.md.
  3. Alta desde la API (ABM): Un usuario autenticado con permisos puede crear usuarios en su organización mediante POST /users, como se describe arriba.

Onboarding y nivel por defecto

  • Tras el registro (por registro de org o invitación), el usuario debe completar un onboarding (explicación del sistema + test si aplica). Ver 05-modos-existenciales.md.
  • Todo usuario tiene un nivel asignado; por defecto será NIVEL_1 (nivel 1). Ver 06-niveles.md.

Avatar (foto de perfil)

Cada usuario puede tener una foto de avatar asociada a su perfil. El usuario gestiona su propio avatar: puede subirlo, reemplazarlo por otro y eliminarlo.

Flujo de carga

La carga de la imagen se realiza en tres pasos:

  1. Solicitar autorización de carga: el usuario indica el tipo de imagen que va a subir y el sistema le entrega una autorización temporal de carga. Ver 17-almacenamiento.md.
  2. Subir la imagen: el usuario envía la imagen al almacenamiento usando la autorización recibida.
  3. Confirmar la carga: el usuario confirma que la imagen se subió. El sistema valida que la imagen le pertenece al propio usuario antes de aceptarla; si la carga confirmada no corresponde al usuario, se rechaza. Una vez confirmada, el avatar queda asociado al perfil.

Reglas de negocio

  • Cooldown de 24 horas: entre un cambio de avatar y el siguiente deben pasar al menos 24 horas. Si el usuario intenta cambiar el avatar antes de cumplirse ese plazo, la solicitud se rechaza e indica cuánto tiempo falta para poder reintentar.
  • Vigencia de la autorización de carga: la autorización temporal para subir la imagen caduca a los 5 minutos. Pasado ese tiempo, el usuario debe solicitar una nueva autorización.
  • Tipos de imagen permitidos: solo se aceptan imágenes JPEG, PNG y WebP.
  • Eliminación del avatar: el usuario puede eliminar su avatar en cualquier momento. Eliminar el avatar no reinicia el cooldown de 24 horas.

Exposición en el perfil

El avatar (avatar_url) forma parte del perfil del usuario y se devuelve en el endpoint de perfil (/auth/me). Si el usuario no tiene avatar, el campo es nulo. Ver 10-autenticacion.md.

Condiciones de negocio (resumen)

  • Un usuario tiene exactamente un rol y una organización.
  • Los usuarios se crean por registro de organización (primer usuario), invitación o alta desde la API (en la organización del creador).
  • Un mismo email no puede estar asociado a más de un usuario.
  • Los usuarios eliminados (soft delete) no aparecen en listados ni en consultas por id.
  • Cada usuario puede subir, reemplazar y eliminar su foto de avatar, con un cooldown de 24 horas entre cambios (eliminar no reinicia el cooldown). El avatar se expone en el perfil del usuario.

Última actualización: 2026-07-02.