Browse Source

- Improved detection of folder rename possibility and its handling

release-0.6
alecpl 14 years ago
parent
commit
1cd36267a1
  1. 7
      program/include/rcube_imap.php
  2. 4
      program/steps/settings/edit_folder.inc

7
program/include/rcube_imap.php

@ -3535,6 +3535,7 @@ class rcube_imap
$options['rights'] = $acl && !$options['is_root'] ? (array)$this->my_rights($mailbox) : array();
$options['special'] = in_array($mailbox, $this->default_folders);
// Set 'noselect' and 'norename' flags
if (is_array($options['options'])) {
foreach ($options['options'] as $opt) {
$opt = strtolower($opt);
@ -3548,12 +3549,14 @@ class rcube_imap
}
if (!empty($options['rights'])) {
$options['norename'] = !in_array('x', $options['rights']) &&
(!in_array('c', $options['rights']) || !in_array('d', $options['rights']));
$options['norename'] = !in_array('x', $options['rights']);
if (!$options['noselect']) {
$options['noselect'] = !in_array('r', $options['rights']);
}
}
else {
$options['norename'] = $options['is_root'] || $options['namespace'] != 'personal';
}
return $options;
}

4
program/steps/settings/edit_folder.inc

@ -106,8 +106,7 @@ function rcmail_folder_form($attrib)
),
);
if (strlen($path) || !strlen($mbox)) {
if (!empty($options) && ($options['norename'] || $options['namespace'] != 'personal')) {
if (!empty($options) && ($options['norename'] || $options['protected'])) {
// prevent user from moving folder
$hidden_path = new html_hiddenfield(array('name' => '_parent', 'value' => $path));
$form['props']['fieldsets']['location']['content']['name']['value'] .= $hidden_path->show();
@ -128,7 +127,6 @@ function rcmail_folder_form($attrib)
'value' => $select->show($selected),
);
}
}
// Settings
$form['props']['fieldsets']['settings'] = array(

Loading…
Cancel
Save