| | |
| | | { |
| | | global $RCMAIL; |
| | | |
| | | $acl = $RCMAIL->imap->get_capability('ACL'); |
| | | $default_folders = (array) $RCMAIL->config->get('default_imap_folders'); |
| | | $options = array(); |
| | | $options = $RCMAIL->imap->mailbox_info($mailbox); |
| | | $options['protected'] = $options['is_root'] || ($options['special'] && $RCMAIL->config->get('protect_default_folders')); |
| | | |
| | | $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['special'] = in_array($mailbox, $default_folders); |
| | | $options['protected'] = $options['special'] && $RCMAIL->config->get('protect_default_folders'); |
| | | |
| | | if (is_array($options['options'])) { |
| | | foreach ($options['options'] as $opt) { |
| | | $opt = strtolower($opt); |
| | | if ($opt == '\noselect' || $opt == '\nonexistent') { |
| | | $options['noselect'] = true; |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | $options['noselect'] = true; |
| | | } |
| | | |
| | | if (!empty($options['rights'])) { |
| | | $options['norename'] = !in_array('x', $options['rights']) && |
| | | (!in_array('c', $options['rights']) || !in_array('d', $options['rights'])); |
| | | if (!$options['noselect']) { |
| | | $options['noselect'] = !in_array('r', $options['rights']); |
| | | } |
| | | } |
| | | |
| | | return $options; |
| | | return $options; |
| | | } |
| | | |
| | | // Updates (or creates) folder row in the subscriptions table |
| | | function rcmail_update_folder_row($name, $oldname=null) |
| | | /** |
| | | * Updates (or creates) folder row in the subscriptions table |
| | | * |
| | | * @param string $name Folder name |
| | | * @param string $oldname Old folder name (for update) |
| | | * @param bool $subscribe Checks subscription checkbox |
| | | * @param string $class CSS class name for folder row |
| | | */ |
| | | function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class_name=null) |
| | | { |
| | | global $IMAP, $CONFIG, $OUTPUT; |
| | | |
| | |
| | | . Q($protected ? rcmail_localize_foldername($name) : rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP')); |
| | | |
| | | if ($oldname === null) |
| | | $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, true); |
| | | $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, $subscribe, |
| | | false, $class_name); |
| | | else |
| | | $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldname, 'UTF7-IMAP'), |
| | | $name_utf8, $display_name, $protected); |
| | | $name_utf8, $display_name, $protected, $class_name); |
| | | } |
| | | |
| | | |