Aleksander Machniak
2012-09-11 8361a48bdd2c365a82ed67ce652a83663149713c
Fix error where session wasn't updated after folder rename/delete (#1488692)

Conflicts:

CHANGELOG
3 files modified
26 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/steps/settings/folders.inc 14 ●●●● patch | view | raw | blame | history
program/steps/settings/save_folder.inc 11 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix error where session wasn't updated after folder rename/delete (#1488692)
- Fix PLAIN authentication for some IMAP servers (#1488674)
- Fix encoding vCard file when contains PHOTO;ENCODING=b (#1488683)
- Fix focus issue in IE when selecting message row (#1488620)
program/steps/settings/folders.inc
@@ -88,6 +88,11 @@
        else {
            $deleted = $plugin['result'];
        }
        // #1488692: update session
        if ($deleted && $_SESSION['mbox'] === $mbox) {
            $RCMAIL->session->remove('mbox');
        }
    }
    if ($OUTPUT->ajax_call && $deleted) {
@@ -396,15 +401,20 @@
        foreach ($a_threaded as $key => $val) {
            if ($key == $oldname) {
                unset($a_threaded[$key]);
                $a_threaded[$newname] = true;
                $a_threaded[$newname] = true;
            }
            else if (preg_match($oldprefix, $key)) {
                unset($a_threaded[$key]);
                $a_threaded[preg_replace($oldprefix, $newname.$delimiter, $key)] = true;
                $a_threaded[preg_replace($oldprefix, $newname.$delimiter, $key)] = true;
            }
        }
        $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded));
        // #1488692: update session
        if ($_SESSION['mbox'] === $oldname) {
            $_SESSION['mbox'] = $newname;
        }
        return true;
    }
program/steps/settings/save_folder.inc
@@ -1,11 +1,11 @@
<?php
/*
/**
 +-----------------------------------------------------------------------+
 | program/steps/settings/save_folder.inc                                |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2009, The Roundcube Dev Team                       |
 | Copyright (C) 2005-2012, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -173,7 +173,7 @@
                    }
                    else if (preg_match($oldprefix, $key)) {
                        unset($a_threaded[$key]);
                          $a_threaded[preg_replace($oldprefix, $folder['name'].$delimiter, $key)] = true;
                        $a_threaded[preg_replace($oldprefix, $folder['name'].$delimiter, $key)] = true;
                    }
                }
            }
@@ -186,7 +186,12 @@
        }
        $OUTPUT->show_message('folderupdated', 'confirmation');
        if ($rename) {
            // #1488692: update session
            if ($_SESSION['mbox'] === $folder['oldname']) {
                $_SESSION['mbox'] = $folder['name'];
            }
            rcmail_update_folder_row($folder['name'], $folder['oldname'], $folder['subscribe'], $folder['class']);
            $OUTPUT->send('iframe');
        }