Projeto

Geral

Perfil

issue_520.patch

Alexandre Luiz Correia, 04/07/2019 17:06 h

Baixar (12,7 KB)

Ver diferenças:

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