diff options
Diffstat (limited to 'program/lib/Roundcube/rcube_user.php')
| -rw-r--r-- | program/lib/Roundcube/rcube_user.php | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/program/lib/Roundcube/rcube_user.php b/program/lib/Roundcube/rcube_user.php index 5e9c9af80..57f63361d 100644 --- a/program/lib/Roundcube/rcube_user.php +++ b/program/lib/Roundcube/rcube_user.php @@ -163,8 +163,16 @@ class rcube_user          if (!$this->ID)              return false; -        $config    = $this->rc->config; -        $old_prefs = (array)$this->get_prefs(); +        $plugin = $this->rc->plugins->exec_hook('preferences_update', array( +            'userid' => $this->ID, 'prefs' => $a_user_prefs, 'old' => (array)$this->get_prefs())); + +        if (!empty($plugin['abort'])) { +            return; +        } + +        $a_user_prefs = $plugin['prefs']; +        $old_prefs    = $plugin['old']; +        $config       = $this->rc->config;          // merge (partial) prefs array with existing settings          $save_prefs = $a_user_prefs + $old_prefs; | 
