issue_520.patch
expressoMail1_2/inc/class.imap_functions.inc.php | ||
---|---|---|
2166 | 2166 |
} |
2167 | 2167 | |
2168 | 2168 | |
2169 |
function create_mailbox($arr)
|
|
2169 |
function create_mailbox( $params )
|
|
2170 | 2170 |
{ |
2171 |
$namebox = $arr['newp'];
|
|
2171 |
$nameBox = $params['newp'];
|
|
2172 | 2172 |
$mbox_stream = $this->open_mbox(); |
2173 | 2173 |
$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; |
2174 |
$namebox = mb_convert_encoding($namebox, "UTF7-IMAP", "UTF-8");
|
|
2174 |
$nameBox = mb_convert_encoding($nameBox, "UTF7-IMAP", "UTF-8");
|
|
2175 | 2175 | |
2176 |
if( preg_match("/^user\/.*?\//i", $namebox, $matches)) { |
|
2176 |
// System folders |
|
2177 |
$draftFolder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']; |
|
2178 |
$trashFolder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']; |
|
2179 |
$sentFolder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']; |
|
2180 |
$spamFolder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']; |
|
2181 | ||
2182 |
if( preg_match("/^user\/.*?\//i", $nameBox, $matches)) { |
|
2177 | 2183 |
$userSharedFolder = $matches[0]; |
2178 | 2184 |
$userSharedFolder = trim($userSharedFolder); |
2179 | 2185 |
$userSharedFolder = substr($userSharedFolder, 0, strlen($userSharedFolder) - 1); |
2180 | 2186 |
$foldersDefault = array( |
2181 | 2187 |
$userSharedFolder, |
2182 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'],
|
|
2183 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'],
|
|
2184 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'],
|
|
2185 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']
|
|
2188 |
$userSharedFolder . $this->imap_delimiter . $draftFolder,
|
|
2189 |
$userSharedFolder . $this->imap_delimiter . $trashFolder,
|
|
2190 |
$userSharedFolder . $this->imap_delimiter . $sentFolder,
|
|
2191 |
$userSharedFolder . $this->imap_delimiter . $spamFolder
|
|
2186 | 2192 |
); |
2187 | 2193 |
|
2188 |
if (array_search($namebox, $foldersDefault)) { |
|
2194 |
if (array_search($nameBox, $foldersDefault)) { |
|
2195 |
return array("status" => false, "error" => "You don't have permission for this operation!"); |
|
2196 |
} |
|
2197 | ||
2198 |
} else { |
|
2199 | ||
2200 |
//Draft Folder |
|
2201 |
if( preg_match( "/^INBOX?(\/|\.)".$draftFolder."$/i", $nameBox ) ){ |
|
2202 |
$nameBox = "INBOX" . $this->imap_delimiter . $draftFolder; |
|
2203 |
} |
|
2204 |
|
|
2205 |
//Trash Folder |
|
2206 |
if( preg_match( "/^INBOX?(\/|\.)".$trashFolder."$/i", $nameBox ) ){ |
|
2207 |
$nameBox = "INBOX" . $this->imap_delimiter . $trashFolder; |
|
2208 |
} |
|
2209 | ||
2210 |
//Sent Folder |
|
2211 |
if( preg_match( "/^INBOX?(\/|\.)".$sentFolder."$/i", $nameBox ) ){ |
|
2212 |
$nameBox = "INBOX" . $this->imap_delimiter . $sentFolder; |
|
2213 |
} |
|
2214 | ||
2215 |
//Spam Folder |
|
2216 |
if( preg_match( "/^INBOX?(\/|\.)".$spamFolder."$/i", $nameBox ) ){ |
|
2217 |
$nameBox = "INBOX" . $this->imap_delimiter . $spamFolder; |
|
2218 |
} |
|
2219 | ||
2220 |
// INBOX || INBOX/INBOX |
|
2221 |
if( preg_match( "/^(INBOX|INBOX\/INBOX|INBOX\.INBOX|Caixa de Entrada)$/i", $nameBox ) ){ |
|
2189 | 2222 |
return array("status" => false, "error" => "You don't have permission for this operation!"); |
2190 | 2223 |
} |
2191 | 2224 |
} |
2192 | 2225 | |
2193 | 2226 |
$result['status'] = true; |
2194 | 2227 | |
2195 |
if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$namebox")){
|
|
2228 |
if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$nameBox")){
|
|
2196 | 2229 |
$result = array( |
2197 | 2230 |
"status" => false, |
2198 | 2231 |
"error" => implode("<br />\n", imap_errors()) |
... | ... | |
2235 | 2268 |
return true; |
2236 | 2269 |
} |
2237 | 2270 | |
2238 |
function delete_mailbox($arr)
|
|
2271 |
function delete_mailbox($params)
|
|
2239 | 2272 |
{ |
2240 |
$namebox = $arr['del_past'];
|
|
2273 |
$nameBox = trim($params['del_past']);
|
|
2241 | 2274 |
$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; |
2242 | 2275 |
$mbox_stream = $this->mbox ? $this->mbox : $this->open_mbox(); |
2243 |
$namebox = mb_convert_encoding($namebox, "UTF7-IMAP", "UTF-8"); |
|
2276 |
$nameBox = mb_convert_encoding($nameBox, "UTF7-IMAP", "UTF-8"); |
|
2277 |
|
|
2278 |
$foldersDefault = array(); |
|
2279 |
$errorMsg = ""; |
|
2244 | 2280 | |
2245 |
if( preg_match("/^user\/.*?\//i", $namebox, $matches)) {
|
|
2281 |
if( preg_match("/^user\/.*?\//i", $nameBox, $matches)) {
|
|
2246 | 2282 |
$userSharedFolder = $matches[0]; |
2247 | 2283 |
$userSharedFolder = trim($userSharedFolder); |
2248 | 2284 |
$userSharedFolder = substr($userSharedFolder, 0, strlen($userSharedFolder) - 1); |
... | ... | |
2253 | 2289 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'], |
2254 | 2290 |
$userSharedFolder . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'] |
2255 | 2291 |
); |
2256 |
|
|
2257 |
if (array_search($namebox, $foldersDefault)) { |
|
2258 |
return array("status" => false, "error" => "You don't have permission for this operation!"); |
|
2259 |
} |
|
2260 |
} |
|
2261 |
|
|
2262 |
$result['status'] = true; |
|
2263 | 2292 | |
2264 |
if (!imap_deletemailbox($mbox_stream,"{".$imap_server."}$namebox")) { |
|
2265 |
$result = array( |
|
2266 |
"status" => false, |
|
2267 |
"error" => imap_last_error() |
|
2293 |
$errorMsg = "You don't have permission for this operation!"; |
|
2294 | ||
2295 |
} else { |
|
2296 |
|
|
2297 |
$foldersDefault = array( |
|
2298 |
'INBOX', |
|
2299 |
'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'], |
|
2300 |
'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'], |
|
2301 |
'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'], |
|
2302 |
'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'] |
|
2268 | 2303 |
); |
2304 |
|
|
2305 |
$errorMsg = "It's not possible delete the selected folder"; |
|
2269 | 2306 |
} |
2270 | 2307 | |
2271 |
if($mbox_stream){ $this->close_mbox($mbox_stream); } |
|
2308 |
if( array_search($nameBox, $foldersDefault) ) { |
|
2309 |
return array("status" => false, "error" => $errorMsg ); |
|
2310 |
} else { |
|
2311 |
|
|
2312 |
$result['status'] = true; |
|
2272 | 2313 | |
2273 |
return $result; |
|
2314 |
if(!imap_deletemailbox($mbox_stream,"{".$imap_server."}$nameBox")){ |
|
2315 |
$result = array( "status" => false, "error" => imap_last_error() ); |
|
2316 |
} |
|
2317 | ||
2318 |
if($mbox_stream){ $this->close_mbox($mbox_stream); } |
|
2319 | ||
2320 |
return $result; |
|
2321 |
} |
|
2274 | 2322 |
} |
2275 | 2323 | |
2276 | 2324 |
function ren_mailbox($arr) |
expressoMail1_2/js/TreeShow.js | ||
---|---|---|
80 | 80 |
|
81 | 81 |
for ( var i=0 ; i < arr_nm_folder.length; i++ ) { |
82 | 82 |
if ( name_folder == arr_nm_folder[i] ) { |
83 |
ttree.FOLDER = ''; |
|
84 | 83 |
return true; |
85 | 84 |
} |
86 | 85 |
} |
... | ... | |
90 | 89 |
// Valida os nomes das pastas |
91 | 90 |
this.validate = function( func ) |
92 | 91 |
{ |
93 |
var aux = ttree.FOLDER.split( cyrus_delimiter ); |
|
94 |
var aux2; |
|
95 |
if ( ttree.FOLDER != "" ) { |
|
92 |
if( $.trim(ttree.FOLDER) !== "" ){ |
|
96 | 93 |
|
97 |
if ( aux.length > 1 ) aux2 = aux[1]; |
|
98 |
else aux2 = aux[0]; |
|
94 |
let folderName = ttree.FOLDER.split( cyrus_delimiter ).pop(); |
|
99 | 95 |
|
100 |
if ( func == 'rename' && this.verify_names( aux2 ) ) { |
|
101 |
|
|
102 |
alert( get_lang( 'It\'s not possible rename the folder: ')+lang_folder( aux2 )+'.' ); |
|
103 |
return false; |
|
96 |
let newFolder = ""; |
|
97 | ||
98 |
if( func === "rename" ){ |
|
99 | ||
100 |
if ( this.verify_names( folderName ) ) { |
|
101 |
alert( get_lang( 'It\'s not possible rename the folder: ') + lang_folder( folderName ) + '.' ); |
|
102 |
return false; |
|
103 |
} |
|
104 | ||
105 |
if ( ttree.FOLDER == 'root' ) { |
|
106 |
alert( get_lang( 'It\'s not possible rename this folder!' ) ); |
|
107 |
return false; |
|
108 |
} |
|
104 | 109 |
|
110 |
if ( $.trim(ttree.FOLDER) === $.trim(get_current_folder()) ) { |
|
111 |
alert( get_lang( |
|
112 |
'It\'s not possible rename this folder, because it is being used in the moment!' |
|
113 |
) ); |
|
114 |
return false; |
|
115 |
} |
|
116 | ||
117 |
newFolder = prompt( get_lang( 'Enter a name for the box'), '' ); |
|
118 | ||
105 | 119 |
} else { |
120 | ||
121 |
newFolder = prompt( get_lang( 'Enter the name of the new folder:' ), '' ); |
|
122 |
} |
|
123 | ||
124 |
newFolder = $.trim( newFolder ); |
|
125 | ||
126 |
if( newFolder !== "" ){ |
|
106 | 127 |
|
107 |
if ( func == 'newpast' ) { |
|
108 |
var button = prompt( get_lang( 'Enter the name of the new folder:' ), '' ); |
|
109 |
|
|
110 |
if ( button.indexOf( 'local_' ) != -1 || button.toUpperCase() == 'INBOX' ) { |
|
111 |
alert( get_lang( 'cannot create folder. try other folder name' ) ); |
|
112 |
//N?o posso criar pastas contendo a string local_ |
|
113 |
return false; |
|
114 |
} |
|
115 |
|
|
116 |
if ( button.match( /[\/\\\!\@\#\$\%\&\*\(\)]/gi ) ) { |
|
117 |
alert( get_lang( 'cannot create folder. try other folder name' ) ); |
|
118 |
return false; |
|
119 |
} |
|
120 |
|
|
121 |
if ( trim( button ) == '' || trim( button ) == null ) return false; |
|
122 |
else ttreeBox.new_past(button); |
|
123 |
|
|
128 |
if ( newFolder.indexOf( 'local_' ) > -1 ) { |
|
129 |
alert( get_lang( 'cannot create folder. try other folder name' ) ); |
|
130 |
return false; |
|
124 | 131 |
} |
125 | 132 |
|
126 |
if ( func == 'rename' ) { |
|
127 |
|
|
128 |
if ( ttree.FOLDER == 'root' ) { |
|
129 |
alert( get_lang( 'It\'s not possible rename this folder!' ) ); |
|
130 |
return false; |
|
131 |
} |
|
132 |
|
|
133 |
if ( ttree.FOLDER == get_current_folder() ) { |
|
134 |
alert( get_lang( |
|
135 |
'It\'s not possible rename this folder, because it is being used in the moment!' |
|
136 |
) ); |
|
137 |
return false; |
|
138 |
} |
|
139 |
|
|
140 |
var button1 = prompt( get_lang( 'Enter a name for the box'), '' ); |
|
141 |
if ( button1.indexOf( 'local_' ) != -1 || button1.toUpperCase() == 'INBOX' ) { |
|
142 |
alert( get_lang( 'cannot create folder. try other folder name' ) ); |
|
143 |
//N?o posso criar pastas contendo a string local_ |
|
144 |
return false; |
|
145 |
} |
|
146 |
|
|
147 |
if ( button1.match( /[\/\\\!\@\#\$\%\&\*\(\)]/gi ) ) { |
|
148 |
alert( get_lang( 'It\'s not possible rename this folder. try other folder name' ) ); |
|
149 |
return false; |
|
150 |
} |
|
151 |
|
|
152 |
if ( trim( button1 ) == '' || trim( button1 ) == null ) return false; |
|
153 |
else ttreeBox.rename(button1); |
|
133 |
if ( newFolder.match( /(INBOX|inbox|Caixa de Entrada)/gi ) ) { |
|
134 |
alert( get_lang( 'NOME INVALIDO' ) ); |
|
135 |
return false; |
|
136 |
} |
|
137 | ||
138 |
if ( newFolder.match( /[\/\\\!\@\#\$\%\&\*\(\)]/gi ) ) { |
|
139 |
alert( get_lang( 'Caracteres inv?lidos' ) ); |
|
140 |
return false; |
|
141 |
} |
|
142 | ||
143 |
if( func === "rename" ){ |
|
144 |
ttreeBox.rename( newFolder ); |
|
145 |
} else { |
|
146 |
ttreeBox.new_past( newFolder ); |
|
154 | 147 |
} |
148 |
} else { |
|
149 |
return false; |
|
155 | 150 |
} |
156 | 151 |
} else { |
157 |
alert( get_lang( 'Select a folder!' ) ); |
|
158 |
return false; |
|
152 |
alert( get_lang( 'Select a folder!' ) ); return false; |
|
159 | 153 |
} |
160 | 154 |
} |
161 | 155 |
|
expressoMail1_2/js/main.js | ||
---|---|---|
841 | 841 |
if( data.error ) { |
842 | 842 |
if( ( new RegExp("Permission denied") ).test( data.error ) ){ |
843 | 843 |
alert( get_lang("You don't have permission for this operation!") ); |
844 |
} else if( ( new RegExp("Mailbox does not exist") ).test( data.error ) ){ |
|
845 |
alert( get_lang("Mailbox does not exist") + " : " + new_folder_name ); |
|
844 | 846 |
} else { |
845 | 847 |
alert( get_lang('Error moving message.') + " :\n " + data.error ); |
846 | 848 |
} |
expressoMail1_2/setup/phpgw_pt-br.lang | ||
---|---|---|
285 | 285 |
It allow you to remove attachments from messages expressoMail1_2 pt-br Permite que voc? remova anexos de mensagens |
286 | 286 |
It allow you to send emails with important flag, but you can receive unwanted messages with important flag expressoMail1_2 pt-br Ela permite que voc? envie e-mails com sinaliza??o de importante, mas voc? pode receber mensagens indesejadas com sinaliza??o de importante |
287 | 287 |
It's not possible create inside: expressoMail1_2 pt-br N?o ? possivel criar dentro de: |
288 |
It's not possible delete the selected folder expressoMail1_2 pt-br N?o ? poss?vel remover a pasta selecionada |
|
288 | 289 |
It's not possible delete the folder: expressoMail1_2 pt-br N?o ? poss?vel remover a pasta: |
289 | 290 |
It's not possible delete this folder, because it is being used in the moment! expressoMail1_2 pt-br N?o ? poss?vel remover esta pasta, pois est? em uso no momento! |
290 | 291 |
It's not possible remove this folder, because it is being used in the moment! expressoMail1_1 pt-br N?o ? poss?vel remover esta pasta, pois est?o em uso no momento! |
... | ... | |
319 | 320 |
l_seen expressoMail1_2 pt-br Lidas |
320 | 321 |
l_unseen expressoMail1_2 pt-br N?o lidas |
321 | 322 |
Mailbox already exists expressoMail1_2 pt-br Pasta j? existe. |
323 |
Mailbox does not exist expressoMail1_2 pt-br Pasta n?o existe |
|
322 | 324 |
Mailbox in migration expressoMail1_2 pt-br Caixa postal em migra??o |
323 | 325 |
Mailbox Sharing expressoMail1_2 pt-br Compartilhamento de Caixa Postal |
324 | 326 |
Mail expressoMail1_2 pt-br Correio |