From ce1f9ec96a13fe0ecaf35e060bea8d0f061cbf17 Mon Sep 17 00:00:00 2001 From: Dale Davies Date: Mon, 18 Sep 2023 13:37:57 +0100 Subject: [PATCH] MDL-79350 core: Do not store lang in session when readonly --- lib/moodlelib.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 7eec95072fe..86401d5ec78 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -10210,8 +10210,14 @@ function setup_lang_from_browser() { // Clean it properly for include. $lang = strtolower(clean_param($lang, PARAM_SAFEDIR)); if (get_string_manager()->translation_exists($lang, false)) { - // Lang exists, set it in session. - $SESSION->lang = $lang; + // If the translation for this language exists then try to set it + // for the rest of the session, if this is a read only session then + // we can only set it temporarily in $CFG. + if (defined('READ_ONLY_SESSION') && !empty($CFG->enable_read_only_sessions)) { + $CFG->lang = $lang; + } else { + $SESSION->lang = $lang; + } // We have finished. Go out. break; }