> ## Documentation Index
> Fetch the complete documentation index at: https://help.impactu.colav.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Editar usuario

> Actualiza el correo electrónico y/o el rol de un usuario. No se puede asignar el rol admin ni editar cuentas admin.

> [!NOTE]
>
> Requiere sesión activa con rol `admin`. Solo se pueden editar cuentas activas
> que no sean `admin`; en otro caso responde `403`.

## Parámetros de ruta

**email** `string` *required*

Correo electrónico actual del usuario a editar.

## Cuerpo de la solicitud

Al menos uno de los dos campos es obligatorio, y los dos deben ser texto. Cualquier otro campo responde `400`.

**email** `string`

Nuevo correo electrónico. Si ya lo usa otro usuario, responde `409`.

**role** `string`

Nuevo rol. No puede ser `admin`.

### Cambio de correo

Al cambiar el correo se genera una contraseña nueva y se envía al correo nuevo; la anterior deja de funcionar. El correo se envía antes de guardar el cambio: si no se puede enviar, responde `502` y el usuario conserva su correo y su contraseña.

Si solo cambia el rol, no se envía ningún correo.

## Respuesta

**success** `boolean`

`true` si la actualización fue exitosa.

**msg** `string`

Mensaje de confirmación o error.

```json 200 — rol theme={null}
{ "success": true, "msg": "Rol del usuario usuario@example.com actualizado correctamente." }
```

```json 200 — correo theme={null}
{
  "success": true,
  "msg": "Correo del usuario actualizado correctamente y notificación enviada a nuevo@example.com."
}
```

```json 400 theme={null}
{ "success": false, "msg": "Debes enviar al menos email o rol." }
```

```json 400 — sin cambios theme={null}
{ "success": false, "msg": "No se detectaron cambios para actualizar." }
```

```json 403 theme={null}
{ "success": false, "msg": "No se puede asignar el rol 'admin' a un usuario." }
```

```json 404 theme={null}
{ "success": false, "msg": "Usuario con correo usuario@example.com no encontrado." }
```

```json 409 theme={null}
{ "success": false, "msg": "Ya existe un usuario con el correo nuevo@example.com" }
```

```json 401 theme={null}
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
```

```json 502 theme={null}
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.