Changeset 1912
- Timestamp:
- 01/04/10 11:25:23 (14 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r1898 r1912 24 24 var $functions; 25 25 var $foldersLimit; 26 var $imap_sentfolder; 26 27 27 28 function imap_functions (){ … … 33 34 $this->imap_delimiter = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter']; 34 35 $this->functions = new functions(); 36 $this->imap_sentfolder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'] : str_replace("*","", $this->functions->getLang("Sent")); 35 37 $this->has_cid = false; 36 38 … … 1760 1762 } 1761 1763 1764 function folder_exists($folder){ 1765 $mbox = $this->open_mbox(); 1766 $serverString = "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}"; 1767 $list = imap_getmailboxes($mbox,$serverString, $folder); 1768 $return = is_array($list); 1769 imap_close($mbox); 1770 return $return; 1771 } 1772 1762 1773 function send_mail($params) 1763 1774 { … … 1840 1851 $forwarding_attachments = $params['forwarding_attachments']; 1841 1852 $local_attachments = $params['local_attachments']; 1842 1843 $folder =$params['folder']; 1853 1854 //Test if must be saved in shared folder and change if necessary 1855 if( $fromaddress[2] == 'y' ){ 1856 //build shared folder path 1857 $newfolder = "user".$this->imap_delimiter.$fromaddress[3].$this->imap_delimiter.$this->imap_sentfolder; 1858 if( $this->folder_exists($newfolder) ) $folder = $newfolder; 1859 else $folder = $params['folder']; 1860 } else { 1861 $folder = $params['folder']; 1862 } 1863 1844 1864 $folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1"); 1845 1865 $folder_name = $params['folder_name']; -
trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
r1740 r1912 689 689 function getSharedUsersFrom($params){ 690 690 $filter = ''; 691 $i = 0; 691 $i = 0; 692 //Added to save if must save sent messages in shared folder 693 $acl_save_sent_in_shared = array(); 694 692 695 if($params['uids']) { 693 696 $uids = explode(";",$params['uids']); 694 $this->imap = new imap_functions(); 697 $this->imap = new imap_functions(); 695 698 foreach($uids as $index => $uid){ 696 699 $params = array(); 700 //Added to save if user has create permission 701 $acl_create_message = array(); 697 702 $acl = $this->imap->getacltouser($uid); 698 if(preg_match("/a/",$acl)) 699 $filter .= "(uid=$uid)"; 700 } 701 } 702 703 if ( preg_match("/a/",$acl )){ 704 $filter .= "(uid=$uid)"; 705 if ( preg_match("/p/",$acl )){ 706 $acl_save_sent_in_shared[ $i ] =$uid; 707 $i++; 708 } 709 } 710 } 711 } 712 703 713 $this->ldapRootConnect(false); 704 714 if ($this->ds) { 705 $justthese = array("cn","mail" );715 $justthese = array("cn","mail","uid"); 706 716 if($filter) { 707 $filter="(&( phpgwAccountType=u)(|$filter))";717 $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=s))(|$filter))"; 708 718 $sr = ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 709 719 ldap_sort($this->ds,$sr,"cn"); 710 720 $info = ldap_get_entries($this->ds, $sr); 711 for ($i = 0;$i < $info["count"]; $i++) 721 $var = print_r($acl_save_sent_in_shared, true); 722 for ($i = 0;$i < $info["count"]; $i++){ 712 723 $info[$i]['cn'][0] = utf8_decode($info[$i]['cn'][0]); 713 } 724 //verify if user has permission to save sent messages in a shared folder 725 if ( in_array( $info[$i]['uid'][0],$acl_save_sent_in_shared) ){ 726 $info[$i]['save_shared'][0] = 'y'; 727 } else $info[$i]['save_shared'][0] = 'n'; 728 } 729 } 730 714 731 $info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname']; 715 732 … … 728 745 for ($j = 0;$j < $result["count"]; $j++){ 729 746 $info[$i]['cn'][0] = utf8_decode($result[$j]['cn'][0]); 730 $info[$i++]['mail'][0] = $result[$j]['mail'][0]; 747 $info[$i]['mail'][0] = $result[$j]['mail'][0]; 748 $info[$i]['save_shared'][0] = 'n'; 749 $info[$i++]['uid'][0] = $result[$j]['uid'][0]; 731 750 } 732 751 } 733 752 734 753 $_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes'] = $info; 735 754 736 755 return $info; 737 756 } -
trunk/expressoMail1_2/js/draw_api.js
r1852 r1912 2535 2535 var _option = document.createElement("OPTION"); 2536 2536 _option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>'; 2537 _option.value = data[x].cn[0] + ';'+data[x].mail[0] ;2537 _option.value = data[x].cn[0] + ';'+data[x].mail[0]+';'+data[x].save_shared[0]+';'+data[x].uid[0]; 2538 2538 sel_from.options[sel_from.options.length] = _option ; 2539 2539 } -
trunk/expressoMail1_2/js/sharemailbox.js
r1495 r1912 41 41 Element('em_input_writeAcl').checked = false; 42 42 Element('em_input_sendAcl').checked = false; 43 Element('em_input_saveAcl').checked = false; 44 Element('em_input_saveAcl').disabled = true; 43 45 44 46 if (data[user].indexOf('lrs',0) >= 0) … … 54 56 Element('em_input_deleteAcl').checked = true; 55 57 } 56 if (data[user].indexOf('wi p',0) >= 0)58 if (data[user].indexOf('wi',0) >= 0) 57 59 { 58 60 Element('em_input_writeAcl').checked = true; 61 } 62 if (data[user].indexOf('p',0) >= 0) 63 { 64 Element('em_input_saveAcl').checked = true; 59 65 } 60 66 if (data[user] != "false" && data[user].indexOf('a',0) >= 0) … … 63 69 Element('em_input_sendAcl').checked = true; 64 70 } 71 if (data[user] != "false" && data[user].indexOf('p',0) >= 0) 72 { 73 Element('em_input_saveAcl').disabled = false; 74 Element('em_input_saveAcl').checked = true; 75 } 76 if( data[user] != "false" && Element('em_input_writeAcl').checked && Element('em_input_sendAcl').checked ){ 77 Element('em_input_saveAcl').disabled = false; 78 } else Element('em_input_saveAcl').disabled = true; 65 79 } 66 80 cExecute ("$this.imap_functions.getaclfromuser&user="+user, handler_getaclfromuser); … … 90 104 acl += 'd'; 91 105 92 if (Element('em_input_writeAcl').checked) 93 acl += 'wip'; 94 95 if (Element('em_input_sendAcl').checked) 96 acl += 'a'; 106 if (Element('em_input_writeAcl').checked) { 107 acl += 'wi'; 108 } 109 110 if (Element('em_input_sendAcl').checked){ 111 acl += 'a'; 112 } else { 113 Element('em_input_saveAcl').disabled = true; 114 Element('em_input_saveAcl').checked = false; 115 } 116 117 if (Element('em_input_sendAcl').checked && Element('em_input_writeAcl').checked){ 118 Element('em_input_saveAcl').disabled = false; 119 } else { 120 Element('em_input_saveAcl').disabled = true; 121 Element('em_input_saveAcl').checked = false; 122 } 123 124 if (Element('em_input_saveAcl').checked) 125 acl += 'p'; 97 126 98 127 var handler_setaclfromuser = function(data) { … … 128 157 Element('em_input_writeAcl').checked = false; 129 158 Element('em_input_sendAcl').checked = false; 159 Element('em_input_saveAcl').checked = false; 130 160 } 131 161 else … … 168 198 '<tr><td>'+get_lang('Exclusion')+':</td><td><input id=\'em_input_deleteAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_delmov_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+ 169 199 '<tr><td>'+get_lang('Write')+':</td><td><input id=\'em_input_writeAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_addcreate_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+ 170 '<tr><td>'+get_lang('Send')+':</td><td><input id=\'em_input_sendAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_sendlike_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr></tbody></table>'+ 200 '<tr><td>'+get_lang('Send')+':</td><td><input id=\'em_input_sendAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_sendlike_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+ 201 '<tr><td>'+get_lang('Save')+':</td><td><input id=\'em_input_saveAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_savelike_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr></tbody></table>'+ 171 202 '</td></tr>'+ 172 203 "</tbody></table>"; … … 241 272 if(! this.arrayWin[div.id]) 242 273 { 243 div.style.height = "4 60px";274 div.style.height = "480px"; 244 275 div.style.width = "540px"; 245 276 var title = ":: "+get_lang("Mailbox Sharing")+" ::"; … … 267 298 } 268 299 Element('em_input_sendAcl').disabled = true; 300 Element('em_input_saveAcl').disabled = true; 269 301 win.open(); 270 302 } … … 361 393 Element('em_input_writeAcl').checked = false; 362 394 Element('em_input_sendAcl').checked = false; 395 Element('em_input_saveAcl').checked = false; 363 396 } 364 397
Note: See TracChangeset
for help on using the changeset viewer.