# Miembros del equipo

> Invita a personas a tu organización con un rol y un alcance por cliente opcional, cambia su rol y retírales el acceso.

Los miembros son las personas con acceso a una organización. Cada uno tiene un
[rol](https://developers.openwaf.dev/es/fundamentals/organizations-and-roles/#roles) y puede estar limitado a los dominios de un
[cliente](https://developers.openwaf.dev/es/fundamentals/agencies-and-clients/). Los administradores gestionan a los miembros; solo los propietarios
pueden dar o quitar el rol de propietario.

## Invitar a un miembro

1. Abre **Miembros › Invitar a un miembro**.
2. Escribe el correo de la persona, elige el rol y el alcance (**Toda la organización** o un cliente). Los miembros
   limitados a un cliente solo pueden ser **Técnico** o **Solo lectura**.
3. Pulsa **Enviar invitación**. El panel muestra un **código de invitación** de un solo uso (`owi_…`). Cópialo en ese
   momento y envíaselo a la persona por un canal de confianza: cualquiera que tenga el código puede usarlo, y no se
   vuelve a mostrar.
4. La invitación vale 7 días. Las pendientes aparecen en **Invitaciones abiertas**; retira una para anular su código.


La persona acepta la invitación con el código:

```sh
curl -X POST "https://dash.openwaf.dev/v1/invitations/accept" \
  -H "Content-Type: application/json" \
  -d '{"secret": "owi_…", "name": "Alex García"}'
```

Al aceptarla pasa a ser miembro con el rol y el alcance de la invitación, y recibe su primer token de API (válido 90
días). A partir de ahí entra en [dash.openwaf.dev](https://dash.openwaf.dev/signin) con el correo invitado.

Los administradores también pueden añadir un miembro directamente, sin invitación, desde la API:

```sh
curl -X POST "https://dash.openwaf.dev/v1/orgs/$ORG/members" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "alex@example.com", "name": "Alex García", "role": "tech"}'
```

Añade `"client_id"` para limitar el miembro a un cliente.

## Cambiar un rol

En **Miembros**, elige el nuevo rol en la fila del miembro. El cambio es inmediato, también para los tokens de API que
creó ese miembro (su [rol efectivo](https://developers.openwaf.dev/es/fundamentals/organizations-and-roles/#effective-role) le sigue).

```sh
curl -X PATCH "https://dash.openwaf.dev/v1/orgs/$ORG/members/$USER_ID" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role": "readonly"}'
```

- Los administradores pueden cambiar miembros hasta `admin`; solo los propietarios pueden nombrar propietarios o
  cambiar el rol de un propietario.
- El último propietario no se puede degradar (`409 conflict`): nombra antes a otro propietario.

## Quitar a un miembro

En **Miembros**, pulsa **Quitar** en la fila del miembro, o llama a `DELETE /v1/orgs/{org}/members/{user}`. La persona
pierde el acceso al momento y **todos sus tokens de API se revocan**: si vuelves a añadirla más adelante, sus tokens
antiguos no vuelven.

Los administradores pueden quitarse a sí mismos con **Salir de la organización** en su propia fila (el último
propietario no puede salir). Los demás miembros piden a un administrador que los quite, o
[borran su cuenta](https://developers.openwaf.dev/es/fundamentals/create-account/#delete-account).

## Quién ve a los miembros

Cualquier miembro de toda la organización, también con `readonly`, ve la lista de miembros. Los miembros limitados a
un cliente no la ven. Solo los administradores ven las invitaciones abiertas y la lista completa de tokens de API.
