CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/include/rcmail.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_config.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_plugin.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_user.php | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== - Fix merging of configuration parameters: user prefs always survive (#1486368) - Fix quota indicator value after folder purge/expunge (#1486488) - Fix external mailto links support for use as protocol handler (#1486037) - Fix attachment excessive memory use, support messages of any size (#1484660) program/include/rcmail.php
@@ -178,7 +178,7 @@ $GLOBALS['USER'] = $this->user; // overwrite config with user preferences $this->config->merge((array)$this->user->get_prefs()); $this->config->set_user_prefs((array)$this->user->get_prefs()); } $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language', $_SESSION['language'])); program/include/rcube_config.php
@@ -28,6 +28,7 @@ { private $prop = array(); private $errors = array(); private $userprefs = array(); /** @@ -132,12 +133,12 @@ * @param string Full path to the config file to be loaded * @return booelan True on success, false on failure */ public function load_from_file($fpath, $merge = true) public function load_from_file($fpath) { if (is_file($fpath) && is_readable($fpath)) { include($fpath); if (is_array($rcmail_config)) { $this->prop = $merge ? array_merge($this->prop, $rcmail_config) : $this->prop + $rcmail_config; $this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs); return true; } } @@ -178,6 +179,19 @@ */ public function merge($prefs) { $this->prop = array_merge($this->prop, $prefs, $this->userprefs); } /** * Merge the given prefs over the current config * and make sure that they survive further merging. * * @param array Hash array with user prefs */ public function set_user_prefs($prefs) { $this->userprefs = $prefs; $this->prop = array_merge($this->prop, $prefs); } program/include/rcube_plugin.php
@@ -59,7 +59,7 @@ { $fpath = $this->home.'/'.$fname; $rcmail = rcmail::get_instance(); if (is_file($fpath) && !$rcmail->config->load_from_file($fpath, false)) { if (is_file($fpath) && !$rcmail->config->load_from_file($fpath)) { raise_error(array('code' => 527, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, 'message' => "Failed to load config from $fpath"), true, false); program/include/rcube_user.php
@@ -123,7 +123,7 @@ $this->language = $_SESSION['language']; if ($this->db->affected_rows()) { $config->merge($a_user_prefs); $config->set_user_prefs($a_user_prefs); return true; }