Changeset 5297 in subversion
- Timestamp:
- Sep 30, 2011 11:22:08 AM (20 months ago)
- Location:
- trunk/roundcubemail/program
- Files:
-
- 4 edited
-
include/main.inc (modified) (1 diff)
-
include/rcube_imap.php (modified) (7 diffs)
-
steps/mail/compose.inc (modified) (1 diff)
-
steps/settings/func.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/include/main.inc
r5285 r5297 1215 1215 1216 1216 if ($p['unsubscribed']) 1217 $list = $RCMAIL->imap->list_unsubscribed('', $p['folder_name'], $p['folder_filter'] );1217 $list = $RCMAIL->imap->list_unsubscribed('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']); 1218 1218 else 1219 $list = $RCMAIL->imap->list_mailboxes('', $p['folder_name'], $p['folder_filter'] );1219 $list = $RCMAIL->imap->list_mailboxes('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']); 1220 1220 1221 1221 $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); -
trunk/roundcubemail/program/include/rcube_imap.php
r5279 r5297 2918 2918 * @param string $name Optional name pattern 2919 2919 * @param string $filter Optional filter 2920 * @param string $rights Optional ACL requirements 2920 2921 * 2921 2922 * @return array List of mailboxes/folders 2922 2923 * @access public 2923 2924 */ 2924 function list_mailboxes($root='', $name='*', $filter=null )2925 { 2926 $a_mboxes = $this->_list_mailboxes($root, $name, $filter );2925 function list_mailboxes($root='', $name='*', $filter=null, $rights=null) 2926 { 2927 $a_mboxes = $this->_list_mailboxes($root, $name, $filter, $rights); 2927 2928 2928 2929 // INBOX should always be available … … 2944 2945 * @param string $name Optional name pattern 2945 2946 * @param mixed $filter Optional filter 2947 * @param string $rights Optional ACL requirements 2946 2948 * 2947 2949 * @return array List of mailboxes/folders … … 2949 2951 * @access private 2950 2952 */ 2951 private function _list_mailboxes($root='', $name='*', $filter=null )2953 private function _list_mailboxes($root='', $name='*', $filter=null, $rights=null) 2952 2954 { 2953 2955 $cache_key = $root.':'.$name; … … 2955 2957 $cache_key .= ':'.(is_string($filter) ? $filter : serialize($filter)); 2956 2958 } 2959 $cache_key .= ':'.$rights; 2957 2960 2958 2961 $cache_key = 'mailboxes.'.md5($cache_key); … … 3022 3025 } 3023 3026 3027 // filter folders list according to rights requirements 3028 if ($rights && $this->get_capability('ACL')) { 3029 $a_folders = $this->filter_rights($a_folders, $rights); 3030 } 3031 3024 3032 // write mailboxlist to cache 3025 3033 $this->update_cache($cache_key, $a_folders); … … 3035 3043 * @param string $name Optional name pattern 3036 3044 * @param mixed $filter Optional filter 3045 * @param string $rights Optional ACL requirements 3037 3046 * 3038 3047 * @return array Indexed array with folder names 3039 3048 */ 3040 function list_unsubscribed($root='', $name='*', $filter=null )3049 function list_unsubscribed($root='', $name='*', $filter=null, $rights=null) 3041 3050 { 3042 3051 // @TODO: caching … … 3062 3071 } 3063 3072 3073 // filter folders list according to rights requirements 3074 if ($rights && $this->get_capability('ACL')) { 3075 $a_folders = $this->filter_rights($a_folders, $rights); 3076 } 3077 3064 3078 // filter folders and sort them 3065 3079 $a_mboxes = $this->_sort_mailbox_list($a_mboxes); 3066 3080 3067 3081 return $a_mboxes; 3082 } 3083 3084 3085 /** 3086 * Filter the given list of folders according to access rights 3087 */ 3088 private function filter_rights($a_folders, $rights) 3089 { 3090 $regex = '/('.$rights.')/'; 3091 foreach ($a_folders as $idx => $folder) { 3092 $myrights = join('', (array)$this->my_rights($folder)); 3093 if ($myrights !== null && !preg_match($regex, $myrights)) 3094 unset($a_folders[$idx]); 3095 } 3096 3097 return $a_folders; 3068 3098 } 3069 3099 -
trunk/roundcubemail/program/steps/mail/compose.inc
r5280 r5297 1384 1384 $select = rcmail_mailbox_select(array_merge($attrib, array( 1385 1385 'noselection' => '- '.rcube_label('dontsave').' -', 1386 'folder_filter' => 'mail' 1386 'folder_filter' => 'mail', 1387 'folder_rights' => 'w', 1387 1388 ))); 1388 1389 return $select->show($_SESSION['compose']['param']['sent_mbox'], $attrib); -
trunk/roundcubemail/program/steps/settings/func.inc
r5210 r5297 677 677 if ($current) { 678 678 $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 679 'maxlength' => 30, 'exceptions' => array('INBOX') ));679 'maxlength' => 30, 'exceptions' => array('INBOX'), 'folder_filter' => 'mail', 'folder_rights' => 'w')); 680 680 } 681 681 else // dummy select
Note: See TracChangeset
for help on using the changeset viewer.
