Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Información sobre learningCloud

learningCentral puede funcionar tanto como una plataforma independiente (standalone), como una plataforma integrada dentro de learningCloud. En este caso, la gestión de usuarios se realiza a través del API de gestión de usuarios de learningCloud (/wiki/spaces/ML/pages/38764631)

Usar codificación de caracteres UTF-8 en el envío de datos

Información del versionado: Básicos (español)

Por motivos de seguridad el external_id no puede contener los caracteres \ ni /  (http://tomcat.apache.org/security-6.html).


Crear usuario

Método: POST

URL: /admin/rest/administration/api/users

Ejemplo:

  • https://demo.central-lms.com/admin/rest/administration/api/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(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 
  • 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,...
  • 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
  • roles = Roles del usuario (Lista de Strings, obligatorio)
    • Valores permitidos:
      • SYSTEM_TRAINER
      • SYSTEM_ADMINISTRATOR
      • SYSTEM_ADMINISTRATOR_TRAINING
      • SYSTEM_TEAM_MANAGER
      • SYSTEM_STUDENT
      • SYSTEM_SUPPORT
  • status = Estado (String, obligatorio)
    • Valores permitidos:
      • ACTIVE
      • INACTIVE
  • 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 (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 valor de la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Nombre de usuario no válido --> USR001 / 400 (Bad Request)
  • Contraseña no cumple el patrón establecido (debe tener al menos cuatro caracteres y no contener espacios) --> Error USR002 / 400 (Bad Request)
  • Identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
  • Identificador de la zona horaria no existe --> No da error, se estable la zona horaria por defecto
  • Roles 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
    • O son correctos pero se ha asignado el rol de soporte, pero no el de administrador
  • Estado del usuario no válido --> Error USR005 / 400 (Bad Request)
  • Email no válido --> Error USR006 / 400 (Bad Request)
  • Nombre de usuario duplicado --> Error USR009 / 400 (Bad Request)
  • Id externo 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 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

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado 


Modificar usuario

Método: PUT

URL:

  • Actualizar por id: 
    • /admin/rest/administration/api/users/id/{id}
  • Actualizar por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

  • https://demo.central-lms.com/admin/rest/administration/api/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(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 
  • 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,...
  • 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
  • roles = Roles del usuario (Lista de Strings, obligatorio)
    • Valores permitidos:
      • SYSTEM_TRAINER
      • SYSTEM_ADMINISTRATOR
      • SYSTEM_ADMINISTRATOR_TRAINING
      • SYSTEM_TEAM_MANAGER
      • SYSTEM_STUDENT
      • SYSTEM_SUPPORT
  • status = Estado (String, obligatorio)
      • Valores permitidos:
        • ACTIVE
        • INACTIVE
  • 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 (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 valor de la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Nombre de usuario no válido --> USR001 / 400 (Bad Request)
  • Identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
  • 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
    • O son correctos pero se ha asignado el rol de soporte, pero no el de administrador
  • Estado del usuario no válido --> Error USR005 / 400 (Bad Request)
  • Email no es válido --> Error USR006 / 400 (Bad Request)
  • El nombre de usuario está duplicado --> Error USR009 / 400 (Bad Request)
  • Id externo 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 contraseña

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/users/id/{id}/password
  • Modificar por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}/password

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Parámetros

  • value = nueva contraseña (String, obligatorio)

Validaciones

  • La nueva contraseña está vacía o 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 imagen de perfil

Método: POST

URL:

  • Añadir por id: 
    • /admin/rest/administration/api/users/id/{id}/image
  • Añadir por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}/image

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

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 imagen de perfil

Método: DELETE

URL:

  • Eliminar por id: 
    • /admin/rest/administration/api/users/id/{id}/image
  • Eliminar por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}/image

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

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 usuario

Método: PUT

URL: /admin/rest/administration/api/users?action={action}

Ejemplo:

Parámetros

  • action = acción que se quiere realizar (activar o desactivar usuarios) (String, obligatorio)
    • Valores permitidos 
      • activateByExternalid
      • activateById
      • deactivateByExternalid
      • deactivateById
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

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)
  • Acción no 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/api/users
  • Obtener todos los usuarios con paginación: 
    • /admin/rest/administration/api/users?startIndex={startIndex}&count={count}

Ejemplo:

Cabecera response

Content-Range:{startIndex}-{lastIndex}/{total}

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 usuario

Método: GET

URL: 

  • Obtener por id: 
    • /admin/rest/administration/api/users/id/{id}
  • Obtener por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}
  • Obtener por username:
    • /admin/rest/administration/api/users/username/{username}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

Ejemplo request:

Ejemplo response:

{
  "id": 25145,
  "external_id": "test02",
  "username": "admin",
  "firstName": "testuser",
  "lastName": "testuser",
  "preferredLanguage": "en",
  "personTimezoneId": "Europe/Paris",
  "roles": [
    "SYSTEM_ADMINISTRATOR",
    "SYSTEM_STUDENT",
    "SYSTEM_TRAINER"
  ],
  "email": "mailtesting@kubbe.es",
  "officePhoneNumber": null,
  "mobilePhoneNumber": null,
  "address": null,
  "jobTitle": null,
  "location": null,
  "organization": null,
  "aboutMe": "I am the testuser administrator of the system.",
  "interests": null,
  "status": "ACTIVE",
  "extendedFields": [
    {
      "extendedFieldName": "prueba",
      "extendedFieldValue": ""
    },
    {
      "extendedFieldName": "Job title",
      "extendedFieldValue": ""
    }
  ]
}


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 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/api/users/id/{id}
  • Eliminar por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

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/api/users/id/{id}/groups?action={action}
  • Añadir por external id:
    • /admin/rest/administration/api/users/externalid/{external_id}/groups?action={action}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

Ejemplo:

Parámetros

  • action = acción que se quiere realizar (añadir usando ids de grupos o ids externos) (String, obligatorio)
    • Valores permitidos:
      • addByGroupIds
      • addByGroupExternalids
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

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)
  • Acción no 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/api/users/id/{id}/groups
  • Obtener por external id: 
    • /admin/rest/administration/api/users/externalid/{external_id}/groups

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

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/api/users/id/{id}/groups?action={action}
  • Eliminar por external id:
    • /admin/rest/administration/api/users/externalid/{external_id}/groups?action={action}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

Ejemplo:

Parámetros

  • action = acción que se quiere realizar (borrar usando ids de grupos o ids externos) (String, obligatorio)
    • Valores permitidos
      • removeByGroupIds
      • removeByGroupExternalids
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

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)
  • Acción no 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

Obtener notificaciones de usuario

Método: GET

URL:

  • Obtener todas las notificaciones de usuario sin paginación: 
    • /admin/rest/administration/api/users/id/{id}/notifications
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications
    • /admin/rest/administration/api/users/username/{username}/notifications
  • Obtener todas las notificaciones de usuario con paginación: 
    • /admin/rest/administration/api/users/id/{id}/notifications?startIndex={startIndex}&count={count}
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications?startIndex={startIndex}&count={count}
    • /admin/rest/administration/api/users/username/{username}/notifications?startIndex={startIndex}&count={count}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

Ejemplo:

Cabecera response

Content-Range:{startIndex}-{lastIndex}/{total}

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 notificaciones de usuario, cada notificación consta de los siguientes campos:

  • id = Identificador de notificación
  • from = Origen de la notificación
  • subject = Asunto de la notificación
  • date = Fecha de la notificación en formato "yyyy-MM-dd HH:mm:ss"
  • read = Campo booleano que indica si el mensaje ha sido leído o no por el usuario

Validaciones

  • Índices erróneos --> Error 416 (Requested Range Not Satisfiable)
    • Usando paginación, ambos índices deben tener un valor
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • No existe el usuario --> Error 404 (Not Found)
  • Todo OK 
    • Si no hay paginación --> 200 (OK) + JSON
    • Si hay paginación --> 206 (Partial Content) + JSON

Eliminar notificaciones de usuario

Método: DELETE

URL:

  • Eliminar notificaciones de usuario:
    • /admin/rest/administration/api/users/id/{id}/notifications
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications
    • /admin/rest/administration/api/users/username/{username}/notifications

Ejemplo:

Parámetros

Listado de id. de notificación que se quieran eliminar:

  • id = Identificador de notificación (Long, obligatorio)

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • Lista de identificadores vacía --> Error 400 (Bad Request)
  • Todo OK --> 200 (OK)

Marcar notificaciones como leídas/no leídas

Método: PUT

URL:

  • Marcar notificaciones como leídas/no leídas:
    • /admin/rest/administration/api/users/id/{id}/notifications
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications
    • /admin/rest/administration/api/users/username/{username}/notifications

Ejemplo:

Parámetros

Listado de id. de notificación que se quieran marcar:

  • id = Identificador de notificación (Long, obligatorio)
  • read = Indica si se marcan como leídas (true) o como no leídas (false) (Boolean, obligatorio)

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • Lista de id. de notificaciones vacía --> Error 400 (Bad Request)
  • Parámetro read vacío --> Error 400 (Bad Request)
  • Todo OK --> 200 (OK).

Obtener detalle de notificación de usuario

Método: GET

URL: 

  • Obtener detalle de notificación de usuario: 
    • /admin/rest/administration/api/users/id/{id}/notifications/{id_notificacion}
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications/{id_notificacion}
    • /admin/rest/administration/api/users/username/{username}/notifications/{id_notificacion}

Ejemplo:

Parámetros

  • id_notificacion = Identificador de notificación (Long, obligatorio)

Campos devueltos en el Json

Notificación, cada notificación consta de los siguientes campos:

  • id = Identificador de notificación
  • from = Origen de la notificación
  • subject = Asunto de la notificación
  • date = Fecha de la notificación en formato "yyyy-MM-dd HH:mm:ss"
  • replyTo = Responder a
  • content = Contenido de la notificación
  • read = Notificación leída

Validaciones

  • No existe la notificación --> Error 404 (Not Found)
  • No existe el usuario --> Error 404 (Not Found)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Obtener resumen de notificaciones

Método: GET

URL: 

  • Obtener resumen de notificaciones de usuario: 
    • /admin/rest/administration/api/users/id/{id}/notifications/summary
    • /admin/rest/administration/api/users/external_id/{external_id}/notifications/summary
    • /admin/rest/administration/api/users/username/{username}/notifications/summary

Ejemplo:

Campos devueltos en el Json

  • total = Número total de notificaciones del usuario
  • unread = Número de notificaciones no leídas por el usuario

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

Obtener los portales accesibles por el usuario

Método: GET

URL: 

  • Obtener los portales accesibles: 
    • /admin/rest/administration/api/users/id/{id}/allowedportals
    • /admin/rest/administration/api/users/external_id/{external_id}/allowedportals
    • /admin/rest/administration/api/users/username/{username}/allowedportals

Ejemplo:

Campos devueltos en el Json

  • support = True/False. Indica si el usuario tiene acceso al portal de soporte (portal del administrador con privilegios de soporte).
  • admin = True/False. Indica si el usuario tiene acceso al portal del administrador.
  • trainer = True/False. Indica si el usuario tiene acceso al portal del formador.
  • student = True/False. Indica si el usuario tiene acceso al portal del alumno.

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • Error inesperado --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK) + JSON


Establecer los portales accesibles por el usuario

Método: PUT

URL:

  • Establecer los portales accesibles:
    • /admin/rest/administration/api/users/id/{id}/allowedportals
    • /admin/rest/administration/api/users/external_id/{external_id}/allowedportals
    • /admin/rest/administration/api/users/username/{username}/allowedportals

Ejemplo:

Parametros

Portales accesibles:

  • support = Si verdadero y el usuario tiene acceso al portal nada ocurre, pero si el usuario no tiene acceso, se le proporciona el rol de soporte. Si falso y el usuario tiene acceso al portal, se le retiran todos roles que le permiten acceder al portal de soporte, si el usuario no tiene acceso al portal, nada ocurre. (True/False,  obligatorio )
  • admin = Si verdadero y el usuario tiene acceso al portal nada ocurre, pero si el usuario no tiene acceso, se le proporciona el rol de administrador. Si falso y el usuario tiene acceso al portal, se le retiran todos roles que le permiten acceder al portal del administrador, si el usuario no tiene acceso al portal, nada ocurre. (True/False,  obligatorio )
  • trainer = Si verdadero y el usuario tiene acceso al portal nada ocurre, pero si el usuario no tiene acceso, se le proporciona el rol de formador. Si falso y el usuario tiene acceso al portal, se le retiran todos roles que le permiten acceder al portal del formador, sin embargo si el usuario no tiene acceso al portal, nada ocurre. (True/False,  obligatorio )
  • student =Si verdadero y el usuario tiene acceso al portal nada ocurre, pero si el usuario no tiene acceso, se le proporciona el rol de alumno. Si falso y el usuario tiene acceso al portal, se le retiran todos roles que le permiten acceder al portal del alumno, sin embargo si el usuario no tiene acceso al portal, nada ocurre. (True/False,  obligatorio )

Validations

  • No existe el usuario --> Error 404 (Not Found)
  • No todos los portales y/o el identificador de usuario especificados como parámetro --> Error 400 (Bad Request)
  • Error inesperado  --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK).


  • No labels