Changeset 6845 for sandbox/2.4.2-expresso2/expressoMail1_2/inc
- Timestamp:
- 07/23/12 10:58:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.4.2-expresso2/expressoMail1_2/inc/class.imap_functions.inc.php
r6762 r6845 2392 2392 $decifrada = mb_convert_encoding('INBOX'.$this->imap_delimiter.'decifradas','UTF7-IMAP','ISO-8859-1'); //Ignorar esta pasta decifrada 2393 2393 $parent = ($nameCount > 1 && $nameArray[($nameCount - 2)] !== 'INBOX') ? implode($this->imap_delimiter, array_slice($nameArray, 0, ($nameCount - 1))): ''; //Pega folder pai 2394 if($nameArray[0] === 'user') 2395 $folders[$prefixShared.$this->imap_delimiter.$nameArray[1]][] = array('id' => $folderId , 'stream' => $v->name , 'attributes' => $v->attributes , 'name' => $nameArray[($nameCount-1)] , 'user' => $nameArray[1] ,'parent' => $parent); 2396 else if( $folderId !== $decifrada) //Escapa pasta decifrada 2397 $folders['INBOX'][strtolower($folderId)] = array('id' => $folderId , 'stream' => $v->name , 'attributes' => $v->attributes ,'name' => $nameArray[($nameCount-1)] , 'parent' => $parent); 2398 } 2394 2395 if($nameArray[0] === 'user'){ 2396 2397 //variaveis utilizadas para definição das permissões das pastas compartilhadas 2398 $acl_share_create = 0; 2399 $acl_share_rename = 0; 2400 $acl_share_delete = 0; 2401 2402 //recuperando as permissões (ACLs) aplicadas na pasta 2403 $imap_getacl = imap_getacl($mboxStream, $folderId); 2404 2405 //Se existe ACLs aplicadas a respectiva pasta (para o usuario corrente) 2406 if(isset($imap_getacl[ $this->username ])){ 2407 $aclImap = $imap_getacl[ $this->username ]; 2408 2409 //A partir dos atributos da ACL definir permissões para cada ação (create, rename e delete) 2410 $pattern_create = '/(c|k)/'; 2411 $pattern_rename = '/((c|k).*(d|x))|((d|x).*(c|k))/'; 2412 $pattern_delete = '/(d|x)/'; 2413 2414 $acl_share_create = preg_match($pattern_create,$aclImap); 2415 $acl_share_rename = preg_match($pattern_rename,$aclImap); 2416 $acl_share_delete = preg_match($pattern_delete,$aclImap); 2417 } 2418 2419 $folders[$prefixShared.$this->imap_delimiter.$nameArray[1]][] = array( 2420 'id' => $folderId , 2421 'stream' => $v->name , 2422 'attributes' => $v->attributes , 2423 'name' => $nameArray[($nameCount-1)] , 2424 'user' => $nameArray[1] , 2425 'parent' => $parent , 2426 2427 //Acrescentando ACLs configuradas a cada pasta compartilhada 2428 'acl_share' => array( 2429 'create' => $acl_share_create, 2430 'rename' => $acl_share_rename, 2431 'delete' => $acl_share_delete 2432 ) 2433 ); 2434 2435 } 2436 else if( $folderId !== $decifrada){ //Escapa pasta decifrada 2437 $folders['INBOX'][strtolower($folderId)] = array( 2438 'id' => $folderId , 2439 'stream' => $v->name , 2440 'attributes' => $v->attributes , 2441 'name' => $nameArray[($nameCount-1)] , 2442 'parent' => $parent 2443 ); 2444 } 2445 } 2446 2399 2447 unset($folders_list); //destroy array de objetos desnecessarios 2400 2448 … … 2414 2462 $append['folder_hasChildren'] = (($vv['attributes'] == 32) && ($vv['name'] != 'INBOX')) ? 1 : 0; 2415 2463 $append['folder_parent'] = $vv['parent']; 2464 2465 //Preparando o array de retorno para conter as ACLs configuradas para cada pasta 2466 if(isset($vv['acl_share'])){ 2467 $append['acl_share'] = $vv['acl_share']; 2468 } 2416 2469 $return[] = $append; 2417 2470 } … … 2420 2473 $quotaInfo = (!isset($params['noQuotaInfo'])) ? $this->get_quota( array('folder_id' => $currentFolder)) : false; //VERIFICA SE O USUARIO TEM COTA 2421 2474 2422 return ( ( is_array($quotaInfo) ) ? array_merge($return, $quotaInfo) : $return ); 2475 return ( ( is_array($quotaInfo) ) ? array_merge($return, $quotaInfo) : $return ); 2423 2476 } 2424 2477
Note: See TracChangeset
for help on using the changeset viewer.