Editar usuario
curl --request PUT \
--url https://api.dev.impactu.colav.co/admin/users/{email} \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"role": "<string>"
}
'import requests
url = "https://api.dev.impactu.colav.co/admin/users/{email}"
payload = {
"email": "<string>",
"role": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', role: '<string>'})
};
fetch('https://api.dev.impactu.colav.co/admin/users/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.impactu.colav.co/admin/users/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'role' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.impactu.colav.co/admin/users/{email}"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.dev.impactu.colav.co/admin/users/{email}")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.impactu.colav.co/admin/users/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "success": true, "msg": "Rol del usuario usuario@example.com actualizado correctamente." }
{
"success": true,
"msg": "Correo del usuario actualizado correctamente y notificación enviada a nuevo@example.com."
}
{ "success": false, "msg": "Debes enviar al menos email o rol." }
{ "success": false, "msg": "No se detectaron cambios para actualizar." }
{ "success": false, "msg": "No se puede asignar el rol 'admin' a un usuario." }
{ "success": false, "msg": "Usuario con correo usuario@example.com no encontrado." }
{ "success": false, "msg": "Ya existe un usuario con el correo nuevo@example.com" }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
Usuarios
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.
PUT
/
admin
/
users
/
{email}
Editar usuario
curl --request PUT \
--url https://api.dev.impactu.colav.co/admin/users/{email} \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"role": "<string>"
}
'import requests
url = "https://api.dev.impactu.colav.co/admin/users/{email}"
payload = {
"email": "<string>",
"role": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', role: '<string>'})
};
fetch('https://api.dev.impactu.colav.co/admin/users/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.impactu.colav.co/admin/users/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'role' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.impactu.colav.co/admin/users/{email}"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.dev.impactu.colav.co/admin/users/{email}")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.impactu.colav.co/admin/users/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"role\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "success": true, "msg": "Rol del usuario usuario@example.com actualizado correctamente." }
{
"success": true,
"msg": "Correo del usuario actualizado correctamente y notificación enviada a nuevo@example.com."
}
{ "success": false, "msg": "Debes enviar al menos email o rol." }
{ "success": false, "msg": "No se detectaron cambios para actualizar." }
{ "success": false, "msg": "No se puede asignar el rol 'admin' a un usuario." }
{ "success": false, "msg": "Usuario con correo usuario@example.com no encontrado." }
{ "success": false, "msg": "Ya existe un usuario con el correo nuevo@example.com" }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
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
string
requerido
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 responde400.
string
Nuevo correo electrónico. Si ya lo usa otro usuario, responde
409.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, responde502 y el usuario conserva su correo y su contraseña.
Si solo cambia el rol, no se envía ningún correo.
Respuesta
boolean
true si la actualización fue exitosa.string
Mensaje de confirmación o error.
{ "success": true, "msg": "Rol del usuario usuario@example.com actualizado correctamente." }
{
"success": true,
"msg": "Correo del usuario actualizado correctamente y notificación enviada a nuevo@example.com."
}
{ "success": false, "msg": "Debes enviar al menos email o rol." }
{ "success": false, "msg": "No se detectaron cambios para actualizar." }
{ "success": false, "msg": "No se puede asignar el rol 'admin' a un usuario." }
{ "success": false, "msg": "Usuario con correo usuario@example.com no encontrado." }
{ "success": false, "msg": "Ya existe un usuario con el correo nuevo@example.com" }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }