2016-08-30 3 views
0

Я настроил веб-сервис REST на Moodle 3.0.5 для использования функции core_course_get_courses, которая должна вернуть ответ, содержащий основную информацию обо всех доступных курсах.Разрешение на установку Moodle не влияет

Это URL я использую:

https://example.com/webservice/rest/server.php?wstoken=713898e3fcaf9ead2218eb7565993230&wsfunction=core_course_get_courses&moodlewsrestformat=json 

И это то, что я получаю:

{ 
    "exception": "required_capability_exception", 
    "errorcode": "nopermissions", 
    "message": "Sorry, but you do not currently have permissions to do that (View courses without participation)" 
} 

Разрешение на вопрос был задан с самого начала, то есть:

moodle/course:view 

Role permissions setting page

Это не имеет никакого эффекта. Я даже разрешил все, несколько сотен разрешений, чтобы посмотреть, будет ли это работать, но все равно никакого эффекта.

Я использовал другую функцию с той же службы, он работает !:

core_enrol_get_enrolled_users 

Другим важным фактом является то, что функция core_course_get_courses работает на местном, разработку машины с новой установки Moodle. В рабочей среде установлено 50 дополнительных плагинов. Отладка, «дополнительные сообщения отладки Moodle для разработчиков» включена, но ошибок нет.

Что может быть причиной этого?

P.S. Девиация машина Ubuntu 14.04

ответ

0

Доступен ли пользователь с токеном возможности?

Найти пользователя с маркером через сайт администратора -> Plugins -> веб-сервисы -> управлять маркерами

или непосредственно /admin/settings.php?section=webservicetokens

Затем проверьте возможность пользователям с помощью сайта администратора -> Пользователи -> разрешения -> проверка системы разрешения

или непосредственно /admin/roles/check.php?contextid=1

Если это выглядит хорошо, а затем проверить, если пользователь находится в списке других пользователей для курса - https://docs.moodle.org/31/en/Other_users

Перейти на курс, то конечно админ -> Пользователи -> другие пользователи

или непосредственно /enrol/otherusers.php?id=# (# = courseid)

Является ли пользователь в этом списке?

+0

Пользователь имеет все возможные разрешения, установленные в настоящее время в соответствии с «Проверка системных разрешений». Существует несколько сотен курсов. Настройка свойств для каждого пользователя не является вариантом. Что, когда кто-то завтра добавляет ряд новых курсов. –

+0

У меня есть подсказка, чтобы использовать пользователя Admin для остальных веб-сервисов. Я создал для него токен и добавил пользователя к конкретной роли. Он не ответил на ошибку «nopermissions», но «500 внутренних ошибок сервера»: -D –

+0

Есть ли способ для разбивки на результат ответа REST? По документам нет. –

-1

Пожалуйста, проверьте требуемые возможности для этой функции, а затем перейти к site Adminitration->users->permission->define

moodle/admin/roles/manage.php роль затем показать список ролей

moodle/admin/roles/define.php?action=edit&roleid=9

enter image description here

позволяют возможности

 Смежные вопросы

  • Нет связанных вопросов^_^