Permissions
1. Obtener roles
- local_servicerefactor_get_roles
Descripción: Obtiene la lista de todos los roles configurados.
Endpoint: local_servicerefactor_get_roles
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_roles
Respuestas:
Devuelve el listado de roles
{ "status": 200, "code": 0, "message": "", "body": [ "roleid": ID de rol "name": Nombre del rol "description": Descripción del rol ]}2. Obtener permisos de un rol (Admin/Manager)
- local_servicerefactor_get_permission_role
Descripción: Permite a un administrador o gestor (roles id 1 o 2) obtener el árbol completo de permisos configurados para un rol específico (“roleid”). Permite filtrar por secciones usando “options”.
Endpoint: local_servicerefactor_get_permission_role
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_permission_role
- usertoken: string | Token del usuario (Debe ser Admin o Manager)
- roleid: int | ID del rol a consultar
- options: array | Filtros opcionales
[{ "name": "courses" }, { "name": "users" }]
Respuestas:
Devuelve la estructura de permisos para ese rol
{ "status": 200, "code": 0, "message": "", "body": [ "availableview": Permisos para visualizar contenidos y apartados, "course": Permisos dentro del curso, "library": Permisos de la libreria, "promotions": Permisos dentro de las promociones, "users": Permisos sobre los usuarios, "followup": Permisos de seguimiento ]}Error si el usuario no tiene permisos (no es admin/manager)
{ "status": 403, "code": 1, "message": "User without permission"}3. Obtener permisos del usuario actual
- local_servicerefactor_get_user_permissions
Descripción:
Obtiene el árbol de permisos asignados al usuario que realiza la petición (basado en su usertoken). Devuelve qué acciones puede o no realizar según su rol.
Endpoint: local_servicerefactor_get_user_permissions
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_user_permissions
- usertoken: string | Token del usuario
- options: array | Filtros opcionales
[{ "name": "courses" }]para reducir la respuesta.
Respuestas:
Devuelve la estructura de permisos del usuario
{ "status": 200, "code": 0, "message": "", "body": [ "availableview": Permisos para visualizar contenidos y apartados, "course": Permisos dentro del curso, "library": Permisos de la libreria, "promotions": Permisos dentro de las promociones, "users": Permisos sobre los usuarios, "followup": Permisos de seguimiento ]}Error si el usuario no se encuentra
{ "status": 404, "code": 1, "message": "User not found"}4. Actualizar estado de permisos
- local_servicerefactor_update_permissions_status
Descripción: Servicio para activar o desactivar permisos específicos para un rol. Solo accesible para administradores o managers.
Endpoint: local_servicerefactor_update_permissions_status
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_update_permissions_status
- usertoken: string | Token del usuario (Admin/Manager)
- role: int | ID del rol a modificar (roleid)
- permissionid: string | IDs de los permisos separados por coma (ej. “10,15,20”)
- status: string | Nuevos estados (0 o 1) separados por coma, correspondientes a los IDs (ej. “1,0,1”)
Respuestas:
Se actualizaron los permisos correctamente
{ "status": 200, "code": 0, "message": ""}Error de permisos (usuario no es admin/manager)
{ "status": 403, "code": 1, "message": "User without permission"}Error si la cantidad de IDs y status no coincide
{ "status": 404, "code": 2, "message": "Permission ids and statuses count mismatch"}Error si el rol no existe
{ "status": 404, "code": 3, "message": "Role not found"}