Хранение cookie Moodle после закрытия браузера

В системе дистанционного обучения (СДО) Moodle по-умолчанию есть одна особенность: после закрытия браузера и повторного входа — система снова запросит пароль. Это не всегда удобно. Происходит это из-за того, что cookie хранятся только до закрытия браузера. Немного изучив исходные тексты системы, я нашёл как это можно легко исправить.

Необходимо открыть файл lib\classes\session\manager.php и найти в нём строки:

$sessionoptions = [
    'lifetime' => 0,
    'path' => $CFG->sessioncookiepath,
    'domain' => $CFG->sessioncookiedomain,
    'secure' => $cookiesecure,
    'httponly' => $CFG->cookiehttponly,
];

if (self::should_use_samesite_none()) {
    // If $samesite is empty, we don't want there to be any SameSite attribute.
    $sessionoptions['samesite'] = 'None';
}

session_set_cookie_params($sessionoptions);

Необходимо изменить параметр lifetime на необходимое время жизни куки (в секундах). Например, 345600 — четверо суток:

$sessionoptions = [
    'lifetime' => 345600,
    'path' => $CFG->sessioncookiepath,
    'domain' => $CFG->sessioncookiedomain,
    'secure' => $cookiesecure,
    'httponly' => $CFG->cookiehttponly,
];

if (self::should_use_samesite_none()) {
    // If $samesite is empty, we don't want there to be any SameSite attribute.
    $sessionoptions['samesite'] = 'None';
}

session_set_cookie_params($sessionoptions);

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