Плагин Moodle Autologin - как направить пользователя на конкретный курс? - PullRequest
4 голосов
/ 17 мая 2019

Я создаю веб-приложение laravel, которое использует Moodle Service (версия 3.6).Я сделал автологин с плагином .

Проблема в том, что нажатие кнопки Take Course на моем внешнем приложении автоматически вводит Moodle (через плагин), но не перенаправляет пользователя на курс, описанный в кнопке.

Есть ли механизм для этого?

Ответы [ 2 ]

3 голосов
/ 22 мая 2019

Используемый плагин уже имеет возможность сделать это:

См. user_login_userkey() метод здесь

/**
 * Logs a user in using userkey and redirects after.
 *
 */
public function user_login_userkey() {

    $keyvalue = required_param('key', PARAM_ALPHANUM);
    $wantsurl = optional_param('wantsurl', '', PARAM_URL);

    if (!empty($wantsurl)) {
        $redirecturl = $wantsurl;
    } else {
        $redirecturl = $CFG->wwwroot;
    }
    if (isloggedin()) {
        $this->redirect($redirecturl);
    }

Так что вам нужно только пройтипараметр wantsurl имеет URL-адрес курса и автоматически перенаправляет вас на курс после входа в систему.

0 голосов
/ 21 мая 2019

На странице плагинов github, на которую вы ссылались, я заметил раздел:

if (isset($courseid)) {
        $path = '&wantsurl=' . urlencode("$domainname/course/view.php?id=$courseid");
    }
    if (isset($modname) && isset($activityid)) {
        $path = '&wantsurl=' . urlencode("$domainname/mod/$modname/view.php?id=$activityid");
    }

Я полагаю, что вы можете определить URL-адрес перенаправления после входа в систему, добавив параметр запроса wantsurl в свой URL-адрес входа.

...