Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsEquipo y accesos
Dispositivo

Cómo invitar un usuario a la organización

Añade a la organización activa uno o varios usuarios que ya existen en el directorio, dejándolos como Invitado y generando la notificación de invitación cuando corresponde.

En este artículo

Este flujo sirve para incorporar a Grupo Marea Demo usuarios que ya existen en el directorio. No crea cuentas por email ni asigna roles: solo crea o actualiza la membresía de organización en estado Invitado.

El responsable de acceso empieza en la pestaña Usuarios de organización, busca por nombre o email y selecciona candidatos disponibles del directorio antes de enviar la invitación.

Antes de empezar

  • Sesión autenticada en Grupo Marea Demo con la organización activa seleccionada.
  • Permiso `users:view` para abrir la pestaña Usuarios y `users:manage` para ver `Invitar usuario`, buscar en el directorio y enviar invitaciones.
  • Al menos un usuario no interno ya creado en el directorio y localizable por nombre o email.
  • Texto de búsqueda introducido en el modal; con el campo vacío no se cargan candidatos.

Instrucciones

  1. 1.

    Abrir Usuarios de organización

    Entra en `organization/access?tab=users` con Grupo Marea Demo seleccionado. La tabla consulta usuarios de la organización cuando hay `selectedOrgId` y permiso de vista; con `users:manage`, la cabecera muestra `Invitar usuario`.

  2. 2.

    Abrir el modal de invitación

    Pulsa `Invitar usuario`. La app abre `Invitar usuarios` con el campo `Buscar por nombre o email`, los contadores de seleccionados y disponibles, y el botón `Invitar` deshabilitado hasta que marques al menos un candidato.

  3. 3.

    Buscar y marcar candidatos

    Escribe parte del nombre o email. La interfaz recorta el texto, espera el debounce y consulta el directorio solo si el modal sigue abierto, la organización está seleccionada y el usuario tiene `users:manage`. Selecciona uno o varios usuarios existentes.

  4. 4.

    Enviar la invitación

    Con candidatos marcados, pulsa `Invitar (n)`. La UI envía `user_ids` y `status` con valor `invited` a `POST /api/app/{orgId}/users`; el backend crea o actualiza la membresía en `user_organizations` como Invitado.

  5. 5.

    Confirmar el resultado

    Tras `201 Created`, el modal se cierra, aparece `Invitaciones enviadas` y la tabla se recarga. Si el usuario invitado queda dentro de la página visible, debe aparecer con estado Invitado.

Validaciones y límites

  • Con `users:view` sin `users:manage`, la tabla se puede consultar pero el botón `Invitar usuario` no aparece.
  • La búsqueda del directorio no se ejecuta con el campo vacío ni sin `selectedOrgId`.
  • El directorio excluye usuarios con `primary_auth_provider = internal-credentials` y filtra por email o nombre completo.
  • La invitación no acepta emails libres ni crea usuarios nuevos; el candidato debe existir antes en `users`.
  • El botón `Invitar` queda deshabilitado sin selección o mientras la invitación se está enviando.
  • `POST /api/app/{orgId}/users` exige JSON válido y al menos un `user_id` no vacío, ya sea individual o dentro de `user_ids`.
  • El flujo de UI siempre envía `status` con valor `invited`; no documentes `accepted`, `remove` o estado vacío como variantes de esta acción.
  • Cada `user_id` del lote se procesa por separado; si uno falla, no se procesan los siguientes.
  • La notificación `organization_invite` se deduplica por usuario y organización; no se crea otra si ya existe.
  • La UI solo oculta candidatos que ya están visibles en la página actual de la tabla, por lo que conviene usar un usuario temporal claramente invitable en capturas.

Resultado esperado

Los usuarios seleccionados quedan asociados a Grupo Marea Demo como Invitado, con `invited_at` actualizado y `accepted_at` limpio. Si no existía una notificación `organization_invite` para ese usuario y organización, se crea y se agenda para entrega posterior.