Ошибка Moodle - Клиент веб-служб - Нет прав доступа в контексте модуля

У меня в Moodle есть следующая настройка:

  • Я включил веб-службы
  • Я включил протокол REST
  • Я добавил службу оценок и включил ее
  • Я добавил в сервис функцию mod_assign_get_grades
  • Я назначил пользователя веб-службы авторизованным пользователем службы.
  • Я также создал и назначил пользователю роль, которая позволит пользователю остального протокола
  • Я также создал токен для пользователя и службы

Я использовал приведенный ниже код, чтобы сделать запрос к API:

/// SETUP - NEED TO BE CHANGED
$token = '068183c4c700bdcfe2b0bfe24a8043e2';
$domainname = 'http://localhost/Project/moodle';
$functionname = 'mod_assign_get_grades';

// REST RETURNED VALUES FORMAT
$restformat = 'xml'; //Also possible in Moodle 2.2 and later: 'json'
                 //Setting it to 'json' will fail all calls on earlier Moodle version

/// PARAMETERS - NEED TO BE CHANGED IF YOU CALL A DIFFERENT FUNCTION
$params = array('assignmentids' => array(1));

/// REST CALL
header('Content-Type: text/plain');
$serverurl = $domainname . '/webservice/rest/server.php'. '?wstoken=' . $token . '&wsfunction='.$functionname;
require_once('./curl.php');
$curl = new curl;
//if rest format == 'xml', then we do not add the param for backward compatibility with Moodle < 2.2
$restformat = ($restformat == 'json')?'&moodlewsrestformat=' . $restformat:'';
$resp = $curl->post($serverurl . $restformat, $params);
print_r($resp);

При выполнении я получаю следующую ошибку:

No access rights in module context

Насколько я могу судить, я назначил соответствующие возможности и разрешения и не знаю, в чем я ошибаюсь?


person Usaamah Patel    schedule 06.01.2017    source источник


Ответы (1)


Похоже, что созданный мной пользователь веб-службы не имел прав на доступ к оценкам учащихся. Используя учетную запись администратора, которую я создал при использовании moodle, я могу запустить скрипт и вернуть ответ.

person Usaamah Patel    schedule 06.01.2017