thomascube
2011-08-19 d43d4bcf44a1feae4274e51f41ce9625147f9f85
Backporting r5092, r5095, r5096 to release-0.6 branch

3 files modified
34 ■■■■ changed files
program/include/rcube_imap.php 6 ●●●●● patch | view | raw | blame | history
program/steps/settings/save_folder.inc 22 ●●●● patch | view | raw | blame | history
skins/default/iehacks.css 6 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap.php
@@ -3513,6 +3513,10 @@
     */
    function mailbox_info($mailbox)
    {
        if ($this->icache['options'] && $this->icache['options']['name'] == $mailbox) {
            return $this->icache['options'];
        }
        $acl       = $this->get_capability('ACL');
        $namespace = $this->get_namespace();
        $options   = array();
@@ -3574,6 +3578,8 @@
            $options['norename'] = $options['is_root'] || $options['namespace'] != 'personal';
        }
        $this->icache['options'] = $options;
        return $options;
    }
program/steps/settings/save_folder.inc
@@ -55,16 +55,6 @@
    }
}
// Check access rights to the parent folder
if (!$error && strlen($path)) {
    $parent_opts = $RCMAIL->imap->mailbox_info($path);
    if ($parent_opts['namespace'] != 'personal'
        && (empty($parent_opts['rights']) || !preg_match('/[ck]/', implode($parent_opts)))
    ) {
        $error = rcube_label('parentnotwritable');
    }
}
if ($error) {
    $OUTPUT->command('display_message', $error, 'error');
}
@@ -78,7 +68,19 @@
    else {
        $name_imap = $RCMAIL->imap->mod_mailbox($name_imap, 'in');
    }
}
// Check access rights to the parent folder
if (!$error && strlen($path) && (!strlen($old_imap) || $old_imap != $name_imap)) {
    $parent_opts = $RCMAIL->imap->mailbox_info($path);
    if ($parent_opts['namespace'] != 'personal'
        && (empty($parent_opts['rights']) || !preg_match('/[ck]/', implode($parent_opts)))
    ) {
        $error = rcube_label('parentnotwritable');
    }
}
if (!$error) {
    $folder['name']     = $name_imap;
    $folder['oldname']  = $old_imap;
    $folder['class']    = '';
skins/default/iehacks.css
@@ -287,3 +287,9 @@
    padding: 0 0 0.5em 0;
    margin-left: -4px;
}
/* fix "jumping" login form in IE7 */
#login-form div.boxcontent
{
  overflow: hidden;
}