summaryrefslogtreecommitdiff
path: root/roundcubemail/program/steps/settings/func.inc
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-06-17 08:03:07 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-06-17 08:03:07 +0000
commit0d5faad8d2af22388d45d33c5b21cac0d843a7a9 (patch)
treebd55f7ce8751c4bad426aafabaed9f5549245903 /roundcubemail/program/steps/settings/func.inc
parentd8f5ff7e62643ede6596c207510a0553cb9c7fbb (diff)
- Improved namespace roots handling in folder manager
git-svn-id: https://svn.roundcube.net/trunk@4860 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/steps/settings/func.inc')
-rw-r--r--roundcubemail/program/steps/settings/func.inc19
1 files changed, 17 insertions, 2 deletions
diff --git a/roundcubemail/program/steps/settings/func.inc b/roundcubemail/program/steps/settings/func.inc
index de9da282f..72e278364 100644
--- a/roundcubemail/program/steps/settings/func.inc
+++ b/roundcubemail/program/steps/settings/func.inc
@@ -790,14 +790,29 @@ function rcmail_folder_options($mailbox)
$acl = $RCMAIL->imap->get_capability('ACL');
$default_folders = (array) $RCMAIL->config->get('default_imap_folders');
+ $delimiter = $RCMAIL->imap->get_hierarchy_delimiter();
+ $namespace = $RCMAIL->imap->get_namespace();
$options = array();
+ // check if the folder is a namespace prefix
+ if (!empty($namespace)) {
+ $mbox = $mailbox . $delimiter;
+ foreach ($namespace as $ns) {
+ foreach ($ns as $item) {
+ if ($item[0] === $mbox) {
+ $options['is_root'] = true;
+ break;
+ }
+ }
+ }
+ }
+
$options['name'] = $mailbox;
$options['options'] = $RCMAIL->imap->mailbox_options($mailbox, true);
$options['namespace'] = $RCMAIL->imap->mailbox_namespace($mailbox);
- $options['rights'] = $acl ? (array)$RCMAIL->imap->my_rights($mailbox) : array();
+ $options['rights'] = $acl && !$options['is_root'] ? (array)$RCMAIL->imap->my_rights($mailbox) : array();
$options['special'] = in_array($mailbox, $default_folders);
- $options['protected'] = $options['special'] && $RCMAIL->config->get('protect_default_folders');
+ $options['protected'] = $options['is_root'] || ($options['special'] && $RCMAIL->config->get('protect_default_folders'));
if (is_array($options['options'])) {
foreach ($options['options'] as $opt) {