Panel | ||||||
---|---|---|---|---|---|---|
|
...
Info |
---|
Crear un usuario
Método: POST
URL: /admin/rest/administration/v1/users
Ejemplo:
...
| ||
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) |
Info |
---|
Usar codificación de caracteres UTF-8 en el envío de datos Manual de autenticación y versionado: manual (autenticación y versionado) |
Note |
---|
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
...
- Valor por defecto = vacía
...
Cabeceras
- ExtendedFieldsValidation: Opcional, valores permitidos:
ignoreMandatory. Se ignorará la comprobación de campos extendidos obligatorios (Error DYN003).
- ignoreAll.Se ignorará la comprobación de campos extendidos obligatorios y también los valores que vengan en el formulario para los campos extendidos. Se inicializan aquellos que sean obligatorios y tengan valor por defecto.
en omisión o con otro valor se comprobará que estén todos los campos extendidos obligatorios con valor.
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
Parámetros
- external_id = Id externo (String, obligatorio) 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,...
- 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
- SYSTEM_SUPPORT
- SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
- 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
...
- (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 -->
- Valores permitidos:
...
- un valor de la lista
- teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)
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 han asignado los roles de auditor y administrador de la formación a la vez
- O son correctos pero seha 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
...
- Si el nombre de usuario del jefe de equipo no existe o el usuario encontrado no tiene ese perfil --> Error USR018 / 400 (Bad Request)
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}
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo:
...
...
...
- 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
...
Cabeceras
- ExtendedFieldsValidation: Opcional, valores permitidos:
ignoreMandatory. Se ignorará la comprobación de camos extendidos obligatorios (Error DYN003).
- ignoreAll. Se ignoran los valores de los campos extendidos del formulario y no se hacen validaciones de campos obligatorios. Se mantienen todos los valores existentes de los campos extendidos.
en omisión o con otro valor se comprobará que estén todos los campos extendidos obligatorios con valor.
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
Parámetros
- external_id = Id externo (String, obligatorio) 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,...
- 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
- SYSTEM_SUPPORT
- SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
- 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
...
- (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 -->
- Valores permitidos:
...
- un valor de la lista
- teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)
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 han asignado los roles de auditor y administrador de la formación a la vez
- O son correctos pero seasignado 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)
- Si el nombre de usuario del jefe de equipo no existe o el usuario encontrado no tiene ese perfil --> Error USR018 / 400 (Bad Request)
- Todo OK --> 200 (OK)
Modificar una contraseña
Método: PUT
URL:
...
Aplicar diff Usuario (v2)
Note |
---|
Se consumirán recursos tipo json:
Este método será parecido al de modificar un usuario, sólo que aplicando diferencias sobre lo que se quiere cambiar y no enviando todos los datos del usuario |
Método: PATCH
Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"
URL:
- Modificar por id:
- /admin/rest/administration/api/users/id/{id}
...
- Modificar por external id:
- /admin/rest/administration/
...
- api/users/externalid/{external_id}
...
...
- Modificar por username:
...
- /
...
- admin/rest/administration/
...
- 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:
...
- api/users/
...
- username/{username}
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo: https://demo.central-lms.com/admin/rest/administration/
...
...
- /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:
...
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
Code Block | ||||
---|---|---|---|---|
| ||||
[
{ "op": "replace", "path": "/firstName", "value": "name" },
{ "op": "add", "path": "/external_id", "value": "extId326" },
{ "op": "replace", "path": "/roles", "value": ["SYSTEM_TRAINER", "SYSTEM_STUDENT", "SYSTEM_ADMINISTRATOR_TRAINING"] },
{ "op": "replace", "path": "/extendedFields", "value": [{"extendedFieldName": "GRUPO_ID", "extendedFieldValue": "111"},
{"extendedFieldName": "DNI", "extendedFieldValue": "12345678O"},
{"extendedFieldName": "SEXO", "extendedFieldValue": "F"}] }
] |
Operaciones permitidas
Se permiten las operaciones del RFC-6902. En path se pondría el parámetro a operar.
[{ "op": "test", "path": "/a/b/c", "value": "foo" },
{ "op": "remove", "path": "/a/b/c" },
{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
{ "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]
Parámetros modificables ("path" y "value" posibles)
- external_id = Id externo ( si no lo tenía hay que incluirlo en una operación add)
- username = Nombre de usuario (String, opcional)
- firstName = Nombre (String, opcional)
- lastName = Apellidos (String, opcional)
- preferredLanguage = Idioma predeterminado (String, opcional)
- 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, opcional)
- 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, opcional)
- Valores permitidos:
- SYSTEM_TRAINER
- SYSTEM_ADMINISTRATOR
- SYSTEM_ADMINISTRATOR_TRAINING
- SYSTEM_TEAM_MANAGER
- SYSTEM_STUDENT
- SYSTEM_SUPPORT
- SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
- Valores permitidos:
- status = Estado (String, opcional)
- Valores permitidos:
- ACTIVE
- INACTIVE
- Valores permitidos:
- email = Correo electrónico del usuario (String, opcional)
- 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 --> un valor de la lista
- Valores permitidos:
- teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)
Validaciones
- Las mismas que en "Modificar Usuario" si se cambian valores del usuario
- Json de operaciones de diferencias incorrecto (verbos no permitidos, path incorrecto, valores no permitidos) --> Error USR017 / 400 (Bad Request).
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
Note |
---|
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/25145/password
- Formulario:
- value=nuevaContraseña
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
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
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo:
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
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
Note |
---|
Recuerda que si tienes configurada la lista blanca de extensiones para imágenes, las extensiones válidas serán esas. |
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
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo:
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
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)
Obtener imagen de perfil
Método: GET
URL:
- Obtener por id:
- /admin/rest/administration/api/users/id/{id}/image
- Obtener por external id:
- /admin/rest/administration/api/users/externalid/{external_id}/image
- Obtener por username:
- /admin/rest/administration/api/users/username/{username}/image
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo:
Validaciones
- No existe el usuario:
- Obtener por id --> Error ERR004/ 400 (Bad Request)
- Obtener por external id --> Error ERR005/ 400 (Bad Request)
- Obtener por username --> Error ERR007/ 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)
- El usuario tiene la imagen por defecto --> 204 (OK - No Content)
Activar/Desactivar usuario
Método: PUT
URL: /admin/rest/administration/api/users?action={action}
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users?action=activateById
- Formulario:
- id=5524&id=5525&id=5526
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
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) 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)
- No se ha encontrado usuario con el external id dado --> Error ERR004 / 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}
Obtener todos los profesores de un curso:
/admin/rest/administration/api/users?trainersByModuleId={moduleId}
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)
- trainersByModuleId = Filtra para que sólo devuelva los profesores del curso (asignados a sus aaff en estados borrador, publicado o finalizado) determinado por el id pasado en este parámetro (Long, opcional).
- excludeTrainersOnDraftSessions = Sólo funciona cuando se proporciona trainersByModuleId. Si está a true no devuelve los profesores asignados a aaff en estado borrador (booleano, 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
- teamManagerUsername = Nombre de usuario del jefe de equipo
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 listado de usuarios filtrado
Note |
---|
Se consumirán recursos application/json. |
Método: POST
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}
Obtener los usuarios filtrados por el listado de username:
/admin/rest/administration/api/users
Code Block | ||||
---|---|---|---|---|
| ||||
{
"usernames": [
"user1","user2","user3"
]
} |
Ejemplo:
https://demo.central-lms.com/admin/rest/administration/api/users?startIndex=0&count=100
Code Block language javascript title BODY - application/json { "usernames": [ "admin" ] }
Cabecera response
Content-Range:{startIndex}-{lastIndex}/{total}
Parámetros
- startindex = Índice inicial para la paginación (Integer, opcional) (parámetro en url)
- count = Total de elementos a recuperar para la paginación (Integer, opcional) (parámetro en url)
- usernames = Listado de nombres de usuario de los que se quiere obtener la información. (parámetro en body, formato json)
Campos devueltos en el Json
Listado de usuarios, cada usuario consta de los mismos campos que en el listado de todos los usuarios.
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)
- 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}
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo request:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/25145
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin
Ejemplo response:
Code Block |
---|
{
"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
- teamManagerUsername = Nombre de usuario del jefe de equipo
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}
Note |
---|
Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / |
Ejemplo:
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
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}
Note |
---|
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/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) 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
Note |
---|
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}
Note |
---|
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/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) 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/externalid/{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/externalid/{external_id}/notifications?startIndex={startIndex}&count={count}
- /admin/rest/administration/api/users/username/{username}/notifications?startIndex={startIndex}&count={count}
Note |
---|
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/externalid/{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/externalid/{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/externalid/{external_id}/notifications/{id_notificacion}
- /admin/rest/administration/api/users/username/{username}/notifications/{id_notificacion}
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/notifications/35
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/notifications/35
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/externalid/{external_id}/notifications/summary
- /admin/rest/administration/api/users/username/{username}/notifications/summary
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/notifications/summary
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/notifications/summary
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 => Usar ahora users/{id}/roles
Método: GET
URL:
- Obtener los portales accesibles:
- /admin/rest/administration/api/users/id/{id}/allowedportals
- /admin/rest/administration/api/users/externalid/{external_id}/allowedportals
- /admin/rest/administration/api/users/username/{username}/allowedportals
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/allowedportals
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/allowedportals
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/allowedportals
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 => Usar ahora users/{id}/roles
Método: PUT
URL:
- Establecer los portales accesibles:
- /admin/rest/administration/api/users/id/{id}/allowedportals
- /admin/rest/administration/api/users/externalid/{external_id}/allowedportals
- /admin/rest/administration/api/users/username/{username}/allowedportals
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/allowedportals
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/allowedportals
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/allowedportals
- Form:
- support=true&admin=true&student=false&trainer=true
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).
Obtener los campos extendidos del usuario
Método: GET
URL:
- Obtener los campos extendidos del usuario:
- /admin/rest/administration/api/users/id/{id}/dynamicProperties
- /admin/rest/administration/api/users/externalid/{external_id}/dynamicProperties
- /admin/rest/administration/api/users/username/{username}/dynamicProperties
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/dynamicProperties
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/dynamicProperties
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/dynamicProperties
Campos devueltos en el Json
Devuelve un json con un mapa nombre_de_la_propiedad_extendida: valor
Ejemplo:
{"prop1":"42","prop2":"aaa","prop3":"ccc","prop4":"c","prop5":null,"prop6":"aaaaaaa","prop7":"true"}
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- Error inesperado --> Error 500 (Internal Server Error)
- Todo OK --> 200 (OK) + JSON
Modificar los campos extendidos del usuario
Método: PATCH
Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"
URL:
- Modificar los campos extendidos del usuario:
- /admin/rest/administration/api/users/id/{id}/dynamicProperties
- /admin/rest/administration/api/users/externalid/{external_id}/dynamicProperties
- /admin/rest/administration/api/users/username/{username}/dynamicProperties
Note |
---|
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/1/dynamicProperties
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/dynamicProperties
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/dynamicProperties
Code Block | ||||
---|---|---|---|---|
| ||||
[
{ "op": "replace", "path": "/prop1", "value": "val1" },
{ "op": "add", "path": "/prop2", "value": "false" },
{ "op": "remove", "path": "/prop3" }
] |
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
Operaciones permitidas
Se permiten las operaciones del RFC-6902. En path se pondría el nombre del campo extendido
[{ "op": "test", "path": "/a/b/c", "value": "foo" },
{ "op": "remove", "path": "/a/b/c" },
{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
{ "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- 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
- Error inesperado en el json de diferencias --> Error DIFF001 / 400 (Bad Request)
- Error inesperado --> Error 500 (Internal Server Error)
- Todo OK --> 200 (OK) + JSON
Obtener los eventos del usuario
Método: GET
URL:
- Obtener los eventos del usuario:
- /admin/rest/administration/api/users/id/{id}/events
- /admin/rest/administration/api/users/externalid/{external_id}/events
- /admin/rest/administration/api/users/username/{username}/events
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/events
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/events
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/events
Parámetros
- fromDate: UTC en milisegundos. Si se pasa este parámetro devolverá sólo eventos cuya fecha de fin (en UTC) sea mayor que la dada (se envían eventos que hayan empezado antes) (Long, opcional)
- toDate: UTC en milisegundos. Si se pasa este parámetro devolverá sólo eventos cuya fecha de inicio sea menor que la dada (se envían eventos que finalicen después de la fecha dada) (Long, opcional)
- rol: Roles del usuario. Si no pasa el parámetro de rol se devuelven todos los eventos. (Lista de Strings, opcional). Valores posibles:
- student. Devuelve los eventos de las acciones formativas donde está inscrito como alumno
- trainer. Devuelve los eventos de las acciones formativas donde está inscrito como formador o si es un tutor del curso correspondiente
Respuesta
Produce un recurso de tipo:
- text/calendar
- application/vnd.netex.nlc-api+calendar
- application/vnd.netex.nlc-api.v1+calendar
- application/vnd.netex.nlc-api.v2+calendar
El cuerpo de la respuesta es un iCal con los mismos eventos que se envian ahora por correo electrónico (acciones formativas presenciales y de videoconferencia y sus reservas de sala) que están en estado publicado o finalizado.
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- Error inesperado --> Error 500 (Internal Server Error)
- Todo OK --> 200 (OK) + JSON
Obtener los roles del usuario
Método: GET
URL:
- Obtener los roles del usuario:
- /admin/rest/administration/api/users/id/{id}/roles
- /admin/rest/administration/api/users/externalid/{external_id}/roles
- /admin/rest/administration/api/users/username/{username}/roles
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/roles
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/roles
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/roles
Campos devueltos en el Json
- SYSTEM_SUPPORT = True/False. Indica si el usuario tiene rol soporte.
- SYSTEM_ADMINISTRATOR = True/False. Indica si el usuario tiene rol administrador.
- SYSTEM_TRAINER = True/False. Indica si el usuario tiene rol formador o jefe de equipo.
- SYSTEM_STUDENT = True/False.Indica si el usuario tiene rol alumno.
- SYSTEM_ADMINISTRATOR_TRAINING = True/False. Indica si el usuario tiene rol administrador de la formación.
- SYSTEM_AUDITOR = True/False. Indica si el usuario tiene rol auditor.
Validaciones
- No existe el usuario --> Error 404 (Not Found)
- No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
- Error inesperado --> Error 500 (Internal Server Error)
- Todo OK --> 200 (OK) + JSON
Establecer los roles del usuario
Método: PUT
URL:
- Establecer los roles:
- /admin/rest/administration/api/users/id/{id}/roles
- /admin/rest/administration/api/users/externalid/{external_id}/roles
- /admin/rest/administration/api/users/username/{username}/roles
Ejemplo:
- https://demo.central-lms.com/admin/rest/administration/api/users/id/1/roles
- https://demo.central-lms.com/admin/rest/administration/api/users/externalid/extuser1/roles
- https://demo.central-lms.com/admin/rest/administration/api/users/username/admin/roles
- Form(json):
- {"SYSTEM_ADMINISTRATOR":false,"SYSTEM_SUPPORT":true,"SYSTEM_STUDENT":true,"SYSTEM_TRAINER":false,"SYSTEM_ADMINISTRATOR_TRAINING":false, "SYSTEM_AUDITOR": false}
Cabeceras
- X-origin: Opcional, valores permitidos:
- lCloud: peticiones con origen Learning Cloud
- lCentral: peticiones con origen Learning Central
Parametros
Roles:
- SYSTEM_SUPPORT = Booleano que indica si el usuario tiene el rol soporte. (True/False, obligatorio )
- SYSTEM_ADMINISTRATOR = Booleano que indica si el usuario tiene el rol administrador. (True/False, obligatorio )
- SYSTEM_TRAINER = Booleano que indica si el usuario tiene el rol formador (Si el usuario tiene activado el rol jefe de equipo, este flag no activará el rol formador. Si se desactiva este rol, ambos serán eliminados (formador+jefe de equipo). (True/False, obligatorio )
- SYSTEM_STUDENT = Booleano que indica si el usuario tiene el rol alumno. (True/False, obligatorio )
- SYSTEM_ADMINISTRATOR_TRAINING =Booleano que indica si el usuario tiene el rol administrador de la formación. (True/False, obligatorio )
- SYSTEM_AUDITOR = Booleano que indica si el usuario tiene el rol auditor. (True/False, obligatorio )
Validations
- No existe el usuario --> Error 404 (Not Found)
- No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
- No se le pasó el parámetro obligatorio (json con todos los roles) --> Error 400
- Roles incompatibles (soporte sin rol admin || admin y training admin simultáneos) --> Error 400 => Código de error USR004
- 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).
Obtener todos los cursos de un usuario
Método: GET
URL:
- Obtener todos los cursos sin paginación:
- /admin/rest/administration/api/users/id/{id}/courses
- /admin/rest/administration/api/users/externalid/{external_id}/courses
- /admin/rest/administration/api/users/username/{username}/courses
- Obtener todos los cursos con paginación:
- /admin/rest/administration/api/users/id/{id}/courses?startIndex={startIndex}&count={count}
- /admin/rest/administration/api/users/externalid/{external_id}/courses?startIndex={startIndex}&count={count}
- /admin/rest/administration/api/users/username/{username}/courses?startIndex={startIndex}&count={count}
Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/users/id/1/courses?startIndex=0&count=100
Parámetros
- startindex = índice inicial para la paginación (Integer, opcional)
- count = total de elementos a recuperar para la paginación (Integer, opcional)
- status = Filtrar por el estado del curso (Valores válidos: DRAFT, PUBLISHED, CLOSED) opcional.
- startDateFrom = Filtrar los cursos que empiecen después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- startDateTo = Filtrar los cursos que empiecen antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- endDateFrom = Filtrar los cursos que terminen después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- endDateTo = Filtrar los cursos que terminen antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- creationDateFrom = Filtrar los cursos creados después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- creationDateTo = Filtrar los cursos creados antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- modificationDateFrom = Filtrar los cursos modificados después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
- modificationDateTo = Filtrar los cursos creados antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
Cabeceras
- NLC-datesFormat. Opcional, valores permitidos:
milliseconds
. Las fechas se devolverán en milisegundos- en otro caso se seguirá el formato de texto: "yyyy-MM-dd HH:mm:ss"
Campos devueltos en el Json
Listado de cursos, cada curso consta de los siguientes campos:
- parent = Campos concretos del curso padre. En caso de que el curso esté configurado para tener convocatorias, son los campos que comparten todas las convocatorias. Contiene los siguientes atributos:
- parentId = Identificador del curso padre
- parentExternal_id = Id externo del curso padre
- name = Nombre del curso padre
- description = Descripción del curso
- comments = Comentarios del curso
- objectives = Objetivos del curso
- issueCertificate = Expedir certificado
- NO --> Sin certificado
- PASSED --> Certificado disponible para los estudiantes tan pronto aprueben el curso
- FINISHED --> Certificado disponible para los estudiantes solamente después de la finalización del curso
- sessionOrganization = Organización de acciones formativas
- MANUAL --> Manual
- AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
- evaluationType = Sistema de evaluación seleccionado
- Valores permitidos:
- PASSED_MANDATORY_ACTIVITIES
- MIN_SCORE
- Valores permitidos:
- credits = Número de créditos
- optativeCredits = Número de créditos optativos
- percentageToPass = porcentaje mínimo para superar el curso
- hasForum = Valor true/false. Indica si tiene foro.
- hasMessage = Valor true/fallse. Indica si tiene mensajes.
- clonedFromId = Identificador de curso que se clona
- hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- hasStartReminder = Activar recordatorios de la fecha de inicio del curso
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- hasEditions = El curso tiene habilitadas las convocatorias
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- recogniseEditions = Validación automática entre convocatorias
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- id = Identificador
- external_id = Id externo
- editionName = Nombre de la convocatoria
- startDateMode = Tipo de fecha de inicio
- PUBLICATION_DATE --> La fecha de inicio será la fecha de publicación del curso
- MANUAL --> La fecha de inicio se establecerá de forma manual
- startDate = Fecha estimada de inicio (UTC)
- endDateMode = Tipo fecha de fin
- NONE --> Ninguna, el administrador finalizará el curso manualmente
- MANUAL --> La fecha de fin se establecerá de forma manual
- FIRST_ACCESS -> Fecha fin según el primer acceso del alumno
- studentAvailableDays = Número de días tras el primero acceso que tiene el alumno disponible el curso (Integer, obligatorio si el modo es FIRST_ACCESS).
- endDate = Fecha estimada de fin (UTC)
- status = Estado del curso
- moduleType = Tipo de módulo
- enrolmentPolicy = Política de inscripción
- AUTO_ENROLLMENT --> Auto inscripción
- ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
- REQUEST_ENROLLMENT --> Solicitar inscripción
- requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción
- INHERIT --> Heredada del curso
- MANUAL --> Se establecerá de forma manual
- requestEnrolmentStartDate = Fecha de apertura de inscripciones (UTC)
- requestEnrolmentEndDate = Fecha de cierre de inscripciones (UTC)
- clonedFromId = Identificador de curso que se clona (Long)
- capacity = Aforo máximo de la edición (Integer)
- avgRating = Valoración media (Double)
- rateable = Curso valorable por los alumnos o no valorable
- Valores permitidos:
- NONE : no valorable
- ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
- Valor por defecto: NONE
- Valores permitidos:
- categories = Lista de Categorías del curso
- id = Identificador de la categoría
- external_id = Identificador externo
- name = Nombre de la categoría
- code = Código de la categoría
- description = Descripción de la categoría
- id = Identificador de la categoría
- extendedFields = Campos extensibles en lista con clave extendedFieldName y
...
- valor extendedFieldValue
- extendedFieldName = Nombre del campo extendido
- extendedFieldValue = Valor del campo extendido
- collection = Nombre de la colección asociada al curso. Vacio si no está asociado a ninguna colección.
Validaciones
- Índices erróneos --> Error 416 (Requested Range Not Satisfiable)
...
- Usando paginación, ambos índices deben tener un valor
- No hay
...
- cursos --> Error 204 (No Content)
- Filtro por estado incorrecto –> Error 400 (Bad request).
- Filtro de fechas con formato incorrecto --> Error 400 (Bad request).
- Error en la generación del Json --> Error 503 (Service Unavailable)
- Filtro por usuario incorrecto --> Error 400 (Bad request)
Todo OK
- Si no hay paginación --> 200 (OK) + JSON
- Si hay paginación --> 206 (Partial Content) + JSON
...
Obtener todos los cursos de catálogo de un usuario
Método: GET
URL:
...
- Obtener
...
- todos los cursos de catálogo:
- /admin/rest/administration/
...
- api/users/id/{id}
...
- /catalog
- /admin/rest/administration/
...
- api/users/externalid/{external_id}/catalog
...
- /admin/rest/administration/
...
- api/users/username/{username}/catalog
Ejemplo:
...
...
...
central-lms.com/admin/rest/administration/
...
...
Campos devueltos en el Json
Listado
...
- 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:
...
de cursos, cada curso consta de los siguientes campos:
- parent = Campos concretos del curso padre. En caso de que el curso esté configurado para tener convocatorias, son los campos que comparten todas las convocatorias. Contiene los siguientes atributos:
- parentId = Identificador del curso padre
- parentExternal_id = Id externo del curso padre
- name = Nombre del curso padre
- description = Descripción del curso
- comments = Comentarios del curso
- objectives = Objetivos del curso
- issueCertificate = Expedir certificado
- NO --> Sin certificado
- PASSED --> Certificado disponible para los estudiantes tan pronto aprueben el curso
- FINISHED --> Certificado disponible para los estudiantes solamente después de la finalización del curso
- sessionOrganization = Organización de acciones formativas
- MANUAL --> Manual
- AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
- evaluationType = Sistema de evaluación seleccionado
- Valores permitidos:
- PASSED_MANDATORY_ACTIVITIES
- MIN_SCORE
- Valores permitidos:
- credits = Número de créditos
- optativeCredits = Número de créditos optativos
- percentageToPass = porcentaje mínimo para superar el curso
- hasForum = Valor true/false. Indica si tiene foro.
- hasMessage = Valor true/fallse. Indica si tiene mensajes.
- clonedFromId = Identificador de curso que se clona
- hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- hasStartReminder = Activar recordatorios de la fecha de inicio del curso
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- hasEditions = El curso tiene habilitadas las convocatorias
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- recogniseEditions = Validación automática entre convocatorias
- Valores permitidos: TRUE / FALSE
- Valor por defecto: FALSE
- id = Identificador
- external_id = Id externo
- editionName = Nombre de la convocatoria
- startDateMode = Tipo de fecha de inicio
- PUBLICATION_DATE --> La fecha de inicio será la fecha de publicación del curso
- MANUAL --> La fecha de inicio se establecerá de forma manual
- startDate = Fecha estimada de inicio (UTC)
- endDateMode = Tipo fecha de fin
- NONE --> Ninguna, el administrador finalizará el curso manualmente
- MANUAL --> La fecha de fin se establecerá de forma manual
- FIRST_ACCESS -> Fecha fin según el primer acceso del alumno
- studentAvailableDays = Número de días tras el primero acceso que tiene el alumno disponible el curso (Integer, obligatorio si el modo es FIRST_ACCESS).
- endDate = Fecha estimada de fin (UTC)
- status = Estado del curso
- moduleType = Tipo de módulo
- enrolmentPolicy = Política de inscripción
- AUTO_ENROLLMENT --> Auto inscripción
- ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
- REQUEST_ENROLLMENT --> Solicitar inscripción
- requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción
- INHERIT --> Heredada del curso
- MANUAL --> Se establecerá de forma manual
- requestEnrolmentStartDate = Fecha de apertura de inscripciones (UTC)
- requestEnrolmentEndDate = Fecha de cierre de inscripciones (UTC)
- clonedFromId = Identificador de curso que se clona (Long)
- capacity = Aforo máximo de la edición (Integer)
- avgRating = Valoración media (Double)
- rateable = Curso valorable por los alumnos o no valorable
- Valores permitidos:
- NONE : no valorable
- ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
- Valor por defecto: NONE
- Valores permitidos:
- categories = Lista de Categorías del curso
- id = Identificador de la categoría
- external_id = Identificador externo
- name = Nombre de la categoría
- code = Código de la categoría
- description = Descripción de la categoría
- id = Identificador de la categoría
- extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
- extendedFieldName = Nombre del campo extendido
- extendedFieldValue = Valor del campo extendido
- collection = Nombre de la colección asociada al curso. Vacio si no está asociado a ninguna colección.
Validaciones
- No hay cursos --> Error 204 (No Content)
- Error en la generación del Json --> Error 503 (Service Unavailable)
- Filtro por usuario incorrecto --> Error 400 (Bad request)
Todo OK
- 200 (OK) + JSON
Dar acceso a usuarios
Método: POST
URL:
- Dar acceso por id:
- /admin/rest/administration/
...
- api/
...
- sessions/id/{id}/
...
- students
...
- Dar acceso por external id:
- /admin/rest/administration/
...
- api/
...
- sessions/externalid/{external_
...
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
...
- id}/students
Ejemplo:
https://clowd-central.learningcloud.me/admin/rest/administration/api/collections/id/2004/students
BODY - application/json
{ "ids" :[ 1 , 2 , 3 ], "externalIds" :[ "ext1" , "ext2" , "ext4" ] } |
Parámetros
Objeto json con dos listados:
- ids = Listado de identificadores de alumnos.
- externalIds = Listado de identificadores externos de alumnos.
Validaciones
- No existe una colección con ese id/externalid --> Error 404 (Not Found) código de error ERR004/ERR005 dependiendo de si es id o externalid.
- La colección tiene política de acceso libre --> Error CLL005/ 400 (Bad Request)
- Errores que provocan un estado 200, se devuelve un listado de json con códigos de errores y se inscriben el resto de alumnos que no dieron error (si no queda ninguno también devuelve un 200).
- Id de alumno no encontrado --> Error CLL006/ 200
- Id externo de alumno no encontrado --> Error CLL007/ 200
- El alumno ya tiene acceso a la colección --> Error CLL004/ 200
- Error inesperado –> Error 500
- Todo OK --> 200 (OK)
...
...
Excluir usuarios de colección
Método: DELETE
URL:
...
- Excluir usuarios por id:
- /admin/rest/administration/
...
- api/
...
- sessions/id/{id}/
...
- removeStudents
- Excluir usuarios por external id:
- /admin/rest/administration/
...
- api/
...
- sessions/externalid/{external_id}/
...
- removeStudents
Ejemplo:
...
...
...
...
- 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
...
api/collections/id/2004/removeStudents
BODY - application/json
{ "ids" :[ 1 , 2 , 3 ], "externalIds" :[ "ext1" , "ext2" , "ext4" ] } |
Parámetros
Objeto json con dos listados:
- ids = Listado de identificadores de alumnos.
- externalIds = Listado de identificadores externos de alumnos.
Validaciones
- No existe una colección con ese id/externalid --> Error 404 (Not Found) código de error ERR004/ERR005 dependiendo de si es id o externalid.
- Errores que provocan un estado 200, se devuelve un listado de json con códigos de errores y se excluyen el resto de alumnos que no dieron error (si no queda ninguno también devuelve un 200).
- Id de alumno no encontrado --> Error CLL006/ 200
- Id externo de alumno no encontrado --> Error CLL007/ 200
- Error inesperado –> Error 500
- Todo OK --> 200 (OK)
...