diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-09-01 12:47:49 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-09-01 12:48:51 +0200 |
commit | 74adada93c588d7d876ab6e51f1f966f2cb5058c (patch) | |
tree | 8d2ce20685fb5dbb3d2ecfb572a5ee7dd5ae8568 | |
parent | c9e1e386e11edf8ba62876593d4643fd5022b10d (diff) |
Fix issue where legacy config was overriden by default config (#1489288)
Conflicts:
CHANGELOG
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_config.php | 24 |
2 files changed, 16 insertions, 9 deletions
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fix issue where legacy config was overriden by default config (#1489288) - Fix newmail_notifier issue where favicon wasn't changed back to default (#1489313) - Fix setting of Junk and NonJunk flags by markasjunk plugin (#1489285) - Fix lack of Reply-To address in header of forwarded message body (#1489298) diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php index f694877b0..3edec4242 100644 --- a/program/lib/Roundcube/rcube_config.php +++ b/program/lib/Roundcube/rcube_config.php @@ -237,8 +237,8 @@ class rcube_config */ public function merge($prefs) { + $prefs = $this->fix_legacy_props($prefs); $this->prop = array_merge($this->prop, $prefs, $this->userprefs); - $this->fix_legacy_props(); } @@ -250,6 +250,8 @@ class rcube_config */ public function set_user_prefs($prefs) { + $prefs = $this->fix_legacy_props($prefs); + // Honor the dont_override setting for any existing user preferences $dont_override = $this->get('dont_override'); if (is_array($dont_override) && !empty($dont_override)) { @@ -271,8 +273,6 @@ class rcube_config $this->userprefs = $prefs; $this->prop = array_merge($this->prop, $prefs); - $this->fix_legacy_props(); - // override timezone settings with client values if ($this->prop['timezone'] == 'auto') { $this->prop['_timezone_value'] = isset($_SESSION['timezone']) ? $this->client_timezone() : $this->prop['_timezone_value']; @@ -285,7 +285,7 @@ class rcube_config /** * Getter for all config options * - * @return array Hash array containg all config properties + * @return array Hash array containing all config properties */ public function all() { @@ -437,16 +437,22 @@ class rcube_config /** * Convert legacy options into new ones + * + * @param array $props Hash array with config props + * + * @return array Converted config props */ - private function fix_legacy_props() + private function fix_legacy_props($props) { foreach ($this->legacy_props as $new => $old) { - if (isset($this->prop[$old])) { - if (!isset($this->prop[$new])) { - $this->prop[$new] = $this->prop[$old]; + if (isset($props[$old])) { + if (!isset($props[$new])) { + $props[$new] = $props[$old]; } - unset($this->prop[$old]); + unset($props[$old]); } } + + return $props; } } |