Cómo quitar un usuario de acceso
Retira a un usuario de la organización o de una ubicación con confirmación explícita, protección del propietario y control del permiso `users:manage`.
En este artículo
Usa esta guía cuando un usuario debe perder acceso a Grupo Marea Demo o a una ubicación concreta como Marea Gran Via. El flujo separa el alcance de organización y el de ubicación para que no se retire más acceso del necesario.
La acción no tiene deshacer desde la pantalla. Antes de confirmar, comprueba que trabajas sobre un usuario no propietario y que el texto del modal menciona el alcance correcto.
Antes de empezar
- Sesión iniciada en la app con un usuario autorizado.
- Permiso `users:manage` en el alcance donde se va a retirar el acceso: organización o ubicación.
- Organización seleccionada; en la demo, Grupo Marea Demo.
- Para retirar acceso de ubicación, ubicación seleccionada; en la demo, Marea Gran Via.
- Usuario objetivo visible en la pestaña Usuarios y distinto del propietario de la organización.
- Para capturas o formación, usar un usuario temporal no propietario porque la UI no ofrece restauración tras confirmar.
Instrucciones
- 1.
Abre acceso
Entra en `organization/access` para trabajar sobre Grupo Marea Demo o en `location/access` para trabajar sobre Marea Gran Via. Mantente en la pestaña Usuarios.
- 2.
Elige el usuario
Busca el usuario que debe perder acceso y verifica que no aparece como Propietario. El propietario está protegido tanto en organización como en ubicación.
- 3.
Abre Eliminar
En el menú de acciones de la fila, selecciona Eliminar. Esta acción solo aparece cuando tienes `users:manage`; con solo lectura puedes consultar el listado, pero no retirar usuarios.
- 4.
Revisa el alcance
Lee el modal antes de continuar. En organización indica que se eliminará al usuario de la organización; en ubicación indica que se eliminará al usuario de la ubicación.
- 5.
Confirma o cancela
Pulsa Eliminar solo si el alcance es correcto. Si pulsas Cancelar o cierras el modal, no se envía ninguna petición `DELETE`.
- 6.
Verifica el resultado
Tras confirmar, el modal se cierra, el listado se refresca y aparece un aviso de éxito. Comprueba que el usuario ya no aparece en el alcance retirado.
- 7.
Cuida usuarios internos
Si el usuario es interno y sus credenciales pertenecen al namespace del alcance, la acción puede borrar la identidad interna completa. Para pruebas o documentación, usa identidades temporales.
Validaciones y límites
- La pestaña Usuarios solo se presenta si el usuario puede ver usuarios: `users:view` o `users:manage`.
- La acción Eliminar solo se añade a las acciones de fila cuando el actor tiene `users:manage` en el alcance actual.
- Las filas del propietario quedan protegidas en la UI y el backend también bloquea la eliminación del propietario.
- La eliminación exige confirmación explícita; Cancelar o cerrar el modal no ejecuta la mutación.
- En organización se llama a `DELETE /api/app/{orgId}/users/{userId}` y se retira la relación `user_organizations`.
- En ubicación se llama a `DELETE /api/app/{orgId}/{locationId}/users/{userId}` y se retira `user_locations` sin eliminar la membresía de organización.
- La respuesta esperada es `204 No Content`; después se invalidan el listado y el detalle del usuario para refrescar la vista.
- Si el usuario interno pertenece al namespace del alcance, el backend elimina la identidad de `users`; si pertenece a otro namespace, continúa la retirada ordinaria de membresía.
Resultado esperado
El usuario queda fuera del alcance elegido y la pantalla muestra el listado actualizado. Si retiraste acceso de ubicación, su membresía de organización sigue existiendo.