Crear un usuario
Método: POST
URL: /admin/rest/administration/v1/users
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users
- Formulario:
- external_id=aexternal&username=pruebaws1&password=1234&firstName=Alejandro&lastName=Vilar&preferredLanguage=en&personTimezoneId=America/Anchorage&roles=SYSTEM_ADMINISTRATOR&roles=SYSTEM_STUDENT&status=active&email=info@netex.com&officePhoneNumber=981999999&mobilePhoneNumber=627999999&address=Calle Icaro 20&jobTitle=Asesor&location=Dto de compras&organization=Comercio justo&aboutMe=Disponibilidad para viajar&interests=Comercio justo&extendedField[Deportes]=true&extendedField[Actividades extraescolares]=Pintura
Parámetros
- external_id = Id externo (String, obligatorio)
- username = Nombre de usuario (String, obligatorio)
- password = Contraseña de usuario (String, opcional)
- Valor por defecto = vacía
- firstName = Nombre (String, obligatorio)
- lastName = Apellidos (String, obligatorio)
- preferredLanguage = Idioma predeterminado (String, obligatorio)
- Valores permitidos = los idiomas de la plataforma:
- en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
- Valores permitidos = los idiomas de la plataforma:
- personTimezoneId = Zona horaria (String, obligatorio)
- Valor por defecto:
- El correspondiente al campo "PlatformTimezone" en la tabla "configurationSettings", el valor actual es "Europe/Paris"
- Si este no existe, se usa el valor definido en la variable de configuración "configuration.settings.default.timezone", el valor actual es "Etc/GMT"
- Valores permitidos:
- Etc/GMT+12, Etc/GMT+11, Pacific/Honolulu, America/Anchorage, America/Tijuana, America/Los_Angeles, America/Phoenix, America/Chihuahua, America/Denver, America/Guatemala, America/Chicago, America/Mexico_City, America/Regina, America/Bogota, America/New_York, America/Indianapolis, America/Caracas, America/Asuncion, America/Halifax, America/Cuiaba, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Buenos_Aires, America/Cayenne, America/Godthab, America/Montevideo, Etc/GMT+2, Etc/GMT+2, Atlantic/Azores, Atlantic/Cape_Verde, Africa/Casablanca, Etc/GMT, Europe/London, Atlantic/Reykjavik, Europe/Berlin, Europe/Budapest, Europe/Paris, Europe/Warsaw, Africa/Lagos, Africa/Windhoek, Asia/Amman, Europe/Istanbul, Asia/Beirut, Africa/Cairo, Asia/Damascus, Africa/Johannesburg, Europe/Kiev, Asia/Jerusalem, Europe/Minsk, Asia/Baghdad, Asia/Riyadh, Africa/Nairobi, Asia/Tehran, Europe/Moscow, Asia/Dubai, Asia/Baku, Indian/Mauritius, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Karachi, Asia/Tashkent, Asia/Calcutta, Asia/Colombo, Asia/Katmandu, Asia/Yekaterinburg, Asia/Almaty, Asia/Dhaka, Asia/Rangoon, Asia/Novosibirsk, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Singapore, Australia/Perth, Asia/Taipei, Asia/Ulaanbaatar, Asia/Irkutsk, Asia/Tokyo, Asia/Seoul, Australia/Adelaide, Australia/Darwin, Asia/Yakutsk, Australia/Brisbane, Australia/Sydney, Pacific/Port_Moresby, Australia/Hobart, Asia/Vladivostok, Pacific/Guadalcanal, Asia/Magadan, Pacific/Auckland, Etc/GMT-12, Pacific/Fiji, Asia/Kamchatka, Pacific/Tongatapu, Pacific/Apia
- Valor por defecto:
- roles = Roles del usuario (Lista de Strings, obligatorio)
- Valores permitidos:
- SYSTEM_TRAINER
- SYSTEM_ADMINISTRATOR
- SYSTEM_ADMINISTRATOR_TRAINING
- SYSTEM_TEAM_MANAGER
- SYSTEM_STUDENT
- Valores permitidos:
- status = Estado (String, obligatorio)
- Valores permitidos:
- ACTIVE
- INACTIVE
- Valores permitidos:
- email = Correo electrónico del usuario (String, obligatorio)
- officePhoneNumber = Teléfono de oficina (String, opcional)
- mobilePhoneNumber = Teléfono móvil (String, opcional)
- address = Dirección (String, opcional)
- jobTitle = Puesto de trabajo (String, opcional)
- location = Departamento (String, opcional)
- organization = Compañía (String, opcional)
- aboutMe = Sobre mí (String, opcional)
- interests = Intereses (String, opcional)
- extendedField[nombre del campo extendido] (lista) = Nombre y valor de los campos extensibles (clave-valor de Strings, opcional*)
* solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto- Valores permitidos:
- Si el campo extendido es de tipo texto --> cualquier texto
- Si el campo extendido es de tipo entero --> sólo números
- Si el campo extendido es de tipo si/no --> valores "true" o "false"
- Si el campo extendido es de tipo lista de valores --> el identificador correspondiente al valor en la lista
- Valores permitidos:
Validaciones
- Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
- El nombre de usuario no es válido --> USR001 / 400 (Bad Request)
- La contraseña no cumple el patrón establecido (debe tener al menos cuatro caracteres y no contener espacios) --> Error USR002 / 400 (Bad Request)
- El identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
- El identificador de la zona horaria no existe --> No da error, se estable la zona horaria por defecto
- Los roles son incorrectos --> Error USR004 / 400 (Bad Request)
- algún rol no existe
- O son correctos pero se han asignado los roles de administrador y administrador de formación a la vez
- El estado del usuario no es válido --> Error USR005 / 400 (Bad Request)
- El email no es válido --> Error USR006 / 400 (Bad Request)
- El número de teléfono de oficina no es válido --> Error USR007 / 400 (Bad Request)
- El número de teléfono móvil no es válido --> Error USR008 / 400 (Bad Request)
- El nombre de usuario está duplicado --> Error USR009 / 400 (Bad Request)
- El external id está duplicado --> Error ERR006 / 400 (Bad Request)
- Error inesperado asignando los roles --> Error USR010 / 400 (Bad Request)
- El nombre de un campo extensible no existe --> Error DYN001 / 400 (Bad Request)
- El valor de un campo extensible tiene un tipo incorrecto --> Error DYN002 / 400 (Bad Request)
- Falta algún campo extensible obligatorio --> Error DYN003 / 400 (Bad Request)
- No se ha incluido el campo obligatorio en la petición y no tiene asignado el valor por defecto
- Se ha incluido el campo en la petición pero se le ha asignado un valor vacío
- Todo OK --> 201 (Created) + id del nuevo usuario
Modificar un usuario
Método: PUT
URL:
- Actualizar por id:
- /admin/rest/administration/v1/users/id/{id}
- Actualizar por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users/id/25416
- Formulario:
- external_id=aexternal&username=pruebaws1&firstName=Alejandro&lastName=Vilar&preferredLanguage=en&personTimezoneId=America/Anchorage&roles=SYSTEM_ADMINISTRATOR&roles=SYSTEM_STUDENT&status=active&email=info@netex.com&officePhoneNumber=981999999&mobilePhoneNumber=627999999&address=Calle Icaro 20&jobTitle=Asesor&location=Dto de compras&organization=Comercio justo&aboutMe=Disponibilidad para viajar&interests=Comercio justo&extendedField[Deportes]=true&extendedField[Actividades extraescolares]=Pintura
Parámetros
- external_id = Id externo (String, obligatorio)
- username = Nombre de usuario (String, obligatorio)
- firstName = Nombre (String, obligatorio)
- lastName = Apellidos (String, obligatorio)
- preferredLanguage = Idioma predeterminado (String, obligatorio)
- Valores permitidos = los idiomas de la plataforma:
- en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
- Valores permitidos = los idiomas de la plataforma:
- personTimezoneId = Zona horaria (String, obligatorio)
- Valor por defecto :
- El correspondiente al campo "PlatformTimezone" en la tabla "configurationSettings", el valor actual es "Europe/Paris"
- Si este no existe, se usa el valor definido en la variable de configuración "configuration.settings.default.timezone", el valor actual es "Etc/GMT"
- Valores permitidos:
- Etc/GMT+12, Etc/GMT+11, Pacific/Honolulu, America/Anchorage, America/Tijuana, America/Los_Angeles, America/Phoenix, America/Chihuahua, America/Denver, America/Guatemala, America/Chicago, America/Mexico_City, America/Regina, America/Bogota, America/New_York, America/Indianapolis, America/Caracas, America/Asuncion, America/Halifax, America/Cuiaba, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Buenos_Aires, America/Cayenne, America/Godthab, America/Montevideo, Etc/GMT+2, Etc/GMT+2, Atlantic/Azores, Atlantic/Cape_Verde, Africa/Casablanca, Etc/GMT, Europe/London, Atlantic/Reykjavik, Europe/Berlin, Europe/Budapest, Europe/Paris, Europe/Warsaw, Africa/Lagos, Africa/Windhoek, Asia/Amman, Europe/Istanbul, Asia/Beirut, Africa/Cairo, Asia/Damascus, Africa/Johannesburg, Europe/Kiev, Asia/Jerusalem, Europe/Minsk, Asia/Baghdad, Asia/Riyadh, Africa/Nairobi, Asia/Tehran, Europe/Moscow, Asia/Dubai, Asia/Baku, Indian/Mauritius, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Karachi, Asia/Tashkent, Asia/Calcutta, Asia/Colombo, Asia/Katmandu, Asia/Yekaterinburg, Asia/Almaty, Asia/Dhaka, Asia/Rangoon, Asia/Novosibirsk, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Singapore, Australia/Perth, Asia/Taipei, Asia/Ulaanbaatar, Asia/Irkutsk, Asia/Tokyo, Asia/Seoul, Australia/Adelaide, Australia/Darwin, Asia/Yakutsk, Australia/Brisbane, Australia/Sydney, Pacific/Port_Moresby, Australia/Hobart, Asia/Vladivostok, Pacific/Guadalcanal, Asia/Magadan, Pacific/Auckland, Etc/GMT-12, Pacific/Fiji, Asia/Kamchatka, Pacific/Tongatapu, Pacific/Apia
- Valor por defecto :
- roles = Roles del usuario (Lista de Strings, obligatorio)
- Valores permitidos:
- SYSTEM_TRAINER
- SYSTEM_ADMINISTRATOR
- SYSTEM_ADMINISTRATOR_TRAINING
- SYSTEM_TEAM_MANAGER
- SYSTEM_STUDENT
- Valores permitidos:
- status = Estado (String, obligatorio)
- Valores permitidos:
- ACTIVE
- INACTIVE
- Valores permitidos:
- email = Correo electrónico del usuario (String, obligatorio)
- officePhoneNumber = Teléfono de oficina (String, opcional)
- mobilePhoneNumber = Teléfono móvil (String, opcional)
- address = Dirección (String, opcional)
- jobTitle = Puesto de trabajo (String, opcional)
- location = Departamento (String, opcional)
- organization = Compañía (String, opcional)
- aboutMe = Sobre mí (String, opcional)
- interests = Intereses (String, opcional)
- extendedField[nombre del campo extendido] (lista) = Nombre y valor de los campos extensibles (clave-valor de Strings, opcional*)
* solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto- Valores permitidos:
- Si el campo extendido es de tipo texto --> cualquier texto
- Si el campo extendido es de tipo entero --> sólo números
- Si el campo extendido es de tipo si/no --> valores "true" o "false"
- Si el campo extendido es de tipo lista de valores --> el identificador correspondiente al valor en la lista
- Valores permitidos:
Validaciones
- Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
- El nombre de usuario no es válido --> USR001 / 400 (Bad Request)
- El identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
El identificador de la zona horaria no existe --> No da error, se estable la zona horaria por defecto - Los roles son incorrectos --> Error USR004 / 400 (Bad Request)
- algún rol no existe
- O son correctos pero se han asignado los roles de administrador y administrador de formación a la vez
- El estado del usuario no es válido --> Error USR005 / 400 (Bad Request)
- El email no es válido --> Error USR006 / 400 (Bad Request)
- El número de teléfono de oficina no es válido --> Error USR007 / 400 (Bad Request)
- El número de teléfono móvil no es válido --> Error USR008 / 400 (Bad Request)
- El nombre de usuario está duplicado --> Error USR009 / 400 (Bad Request)
- El external id está duplicado --> Error ERR006 / 400 (Bad Request)
- Error inesperado asignando los roles --> Error USR010 / 400 (Bad Request)
- El nombre de un campo extensible no existe --> Error DYN001 / 400 (Bad Request)
- El valor de un campo extensible tieneun tipo incorrecto --> Error DYN002 / 400 (Bad Request)
- Falta algún campo extensible obligatorio --> Error DYN003 / 400 (Bad Request)
- No se ha incluido el campo obligatorio en la petición y no tiene asignado el valor por defecto
- Se ha incluido el campo en la petición pero se le ha asignado un valor vacío
- No existe el usuario --> Error 404 (Not Found)
- Todo OK --> 200 (OK)
Modificar una contraseña
Método: PUT
URL:
- Modificar por id:
- /admin/rest/administration/v1/users/id/{id}/password
- Modificar por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/password
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users/id/25145/password
- Formulario:
- value=nuevaContraseña
Parámetros
- value = nueva contraseña (String, obligatorio)
Validaciones
- La nueva contraseña está vacía o es incorrecta (debe tener al menos cuatro caracteres y no contener espacios) --> Error 400 (Bad Request)
- No existe el usuario --> Error 404 (Not Found)
- Todo OK --> 200 (OK)
Añadir una imagen de perfil
Método: POST
URL:
- Añadir por id:
- /admin/rest/administration/v1/users/id/{id}/image
- Añadir por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/image
Ejemplo:
Parámetros
- file = imagen que se quiere guardar (File, obligatorio)
- Debe ser un fichero con extensíón JPG, JPEG, GIF o PNG
- Su tamaño no puede superar 700KB
Validaciones
- No se ha incluido ningún fichero --> Error ERR001 / 400 (Bad Request)
- No existe el usuario:
- Añadiendo por id --> Error ERR004/ 400 (Bad Request)
- Añadiendo por external id --> Error ERR005/ 400 (Bad Request)
- La imagen no es válida:
- Extensión no permitida --> Error USR011 / 400 (Bad Request)
- Tamaño superior al permitido --> Error USR012 / 400 (Bad Request)
- El contenido de la imagen ha provocado algún error inesperado --> Error USR013 / 400 (Bad Request)
- Error en el respositorio de imágenes --> Error USR014 / 400 (Bad Request)
- No se ha podido actualizar la imagen --> Error USR015 / 400 (Bad Request)
- Todo OK --> 200 (OK)
Eliminar una imagen de perfil
Método: DELETE
URL:
- Eliminar por id:
- /admin/rest/administration/v1/users/id/{id}/image
- Eliminar por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/image
Ejemplo:
Validaciones
- No existe el usuario:
- Eliminando por id --> Error ERR004/ 400 (Bad Request)
- Eliminando por external id --> Error ERR005/ 400 (Bad Request)
- Error en el respositorio de imágenes --> Error USR014 / 400 (Bad Request)
- No existe la imagen --> Error 404 (Not Found)
- Todo OK --> 200 (OK)
Activar/Desactivar un usuario
Método: PUT
URL: /admin/rest/administration/v1/users?action={action}
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users?action=activateById
- Formulario:
- id=5524&id=5525&id=5526
Parámetros
- action = acción que se quiere realizar (activar o desactivar usuarios) (String, obligatorio)
- Valores permitidos:
- activateByExternalid
- activateById
- deactivateByExternalid
- deactivateById
- Valores permitidos:
- id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)
Campos devueltos en el Json (en caso de que algún usuario haya dado error)
- status: KO
- ids / external ids: listado de ids o external ids que han dado error
Validaciones
- Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
- La acción no es válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
- Se ha escogido la acción "activateById" o "deactivateById" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
- Ejecución OK y todos los usuarios han sido modificados--> 200 (OK)
- Ejecución OK y algún usuario no ha podido ser modificado --> 200 (OK) + JSON
Obtener todos los usuarios
Método: GET
URL:
- Obtener todos los usuarios sin paginación:
- /admin/rest/administration/v1/users
- Obtener todos los usuarios con paginación:
- /admin/rest/administration/v1/users?startIndex={startIndex}&count={count}
Ejemplo:
Parámetros
- startindex = índice inicial para la paginación (Integer, opcional)
- count = total de elementos a recuperar para la paginación (Integer, opcional)
Campos devueltos en el Json
Listado de usuarios, cada usuario consta de los siguientes campos:
- id = Identificador
- external_id = Id externo
- username = Nombre de usuario
- firstName = Nombre
- lastName = Apellidos
- preferredLanguage = Idioma predeterminado
- personTimezoneId = Zona horaria
- roles = Roles del usuario
- email = Correo electrónico del usuario
- officePhoneNumber = Teléfono de oficina
- mobilePhoneNumber = Teléfono móvil
- address = Dirección
- jobTitle = Puesto de trabajo
- location = Departamento
- organization = Compañía
- aboutMe = Sobre mí
- interests = Intereses
- status = Estado
- extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
Validaciones
- Índices erróneos --> Error 416 (Requested Range Not Satisfiable)
- Usando paginación, ambos índices deben tener un valor
- No hay usuarios --> Error 204 (No Content)
- Error en la generación del Json --> Error 503 (Service Unavailable)
- Todo OK
- Si no hay paginación --> 200 (OK) + JSON
- Si hay paginación --> 206 (Partial Content) + JSON
Obtener un usuario
Método: GET
URL:
- Obtener por id:
- /admin/rest/administration/v1/users/id/{id}
- Obtener por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}
- Obtener por username:
- /admin/rest/administration/v1/users/username/{username}
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users/id/25145
- https://192.168.131.155/admin/rest/administration/v1/users/username/admin
Campos devueltos en el Json
Listado de usuarios, cada usuario consta de los siguientes campos:
- id = Identificador
- external_id = Id externo
- username = Nombre de usuario
- firstName = Nombre
- lastName = Apellidos
- preferredLanguage = Idioma predeterminado
- personTimezoneId = Zona horaria
- roles = Roles del usuario
- email = Correo electrónico del usuario
- officePhoneNumber = Teléfono de oficina
- mobilePhoneNumber = Teléfono móvil
- address = Dirección
- jobTitle = Puesto
- location = Departamento
- organization = Compañía
- aboutMe = Sobre mí
- interests = Intereses
- status = Estado
- extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValues
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- Error en la generación del Json --> Error 503 (Service Unavailable)
- Todo OK --> 200 (OK) + JSON
Eliminar un usuario
Borra el usuario y lo elimina de todos los grupos a los que pertenezca.
Método: DELETE
URL:
- Eliminar por id:
- /admin/rest/administration/v1/users/id/{id}
- Eliminar por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}
Ejemplo:
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- El usuario está en estado "Activo" --> Error 400 (Bad Request)
- Todo OK --> 200 (OK)
Añadir grupos a un usuario
Método: POST
URL:
- Añadir por id:
- /admin/rest/administration/v1/users/id/{id}/groups?action={action}
- Añadir por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/groups?action={action}
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users/id/5246/groups?action=addByGroupIds
- Formulario:
- id=5524&id=5525&id=5526
Parámetros
- action = acción que se quiere realizar (añadir usando ids de grupos o ids externos) (String, obligatorio)
- Valores permitidos:
- addByGroupIds
- addByGroupExternalids
- Valores permitidos:
- id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)
Campos devueltos en el Json (en caso de que algún grupo haya dado error)
- status: KO
- ids / external ids: listado de ids o external ids que han dado error
Validaciones
- Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
- La acción no es válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
- Se ha escogido la acción "addByGroupIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
- No existe el usuario --> Error 400 (Not Found)
- Ejecución OK y todos los grupos han sido añadidos --> 200 (OK)
- Ejecución OK y algún grupo no ha podido ser añadido --> 200 (OK) + JSON
Obtener grupos de un usuario
Método: GET
URL:
- Obtener por id:
- /admin/rest/administration/v1/users/id/{id}/groups
- Obtener por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/groups
Ejemplo:
Campos devueltos en el Json
Listado de grupos a los que pertenece el usuario, cada grupo consta de los siguientes campos:
- id = Identificador
- external_id = Id externo
- parentId = Id del grupo al que pertenece en caso de que sea un subgrupo
- name = Nombre
- description = Descripción
Validaciones
- El usuario no existe --> Error 404 (Not Found)
- El usuario no tiene grupos --> Error 204 (No Content)
- Error en la generación del Json --> Error 503 (Service Unavailable)
- Todo OK --> 200 (OK) + JSON
Eliminar grupos de un usuario
Método: DELETE
URL:
- Eliminar por id:
- /admin/rest/administration/v1/users/id/{id}/groups?action={action}
- Eliminar por external id:
- /admin/rest/administration/v1/users/externalid/{external_id}/groups?action={action}
Ejemplo:
- https://192.168.131.155/admin/rest/administration/v1/users/id/5246/groups?action=removeByGroupIds
- Formulario:
- id=5524&id=5525&id=5526
Parámetros
- action = acción que se quiere realizar (borrar usando ids de grupos o ids externos) (String, obligatorio)
- Valores permitidos:
- removeByGroupIds
- removeByGroupExternalids
- Valores permitidos:
- id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)
Campos devueltos en el Json (en caso de que algún grupo haya dado error)
- status: KO
- ids / external ids: listado de ids o external ids que han dado error
Validaciones
- Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
- La acción no es válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
- Se ha escogido la acción "removedByGroupIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
- No existe el usuario --> Error 400 (Not Found)
- Ejecución OK y todos los grupos han sido eliminados --> 200 (OK)
- Ejecución OK y algún grupo no ha podido ser eliminado --> 200 (OK) + JSON