Fix performance of listing writeable folders (#1489451)

pull/157/head
Aleksander Machniak 11 years ago
parent 6dee834ca0
commit 38bf401cf8

@ -1,6 +1,8 @@
CHANGELOG Roundcube Webmail CHANGELOG Roundcube Webmail
=========================== ===========================
- Fix performance of listing writeable folders (#1489451)
RELEASE 1.0-beta RELEASE 1.0-beta
---------------- ----------------
- Fix handling of invalid closing tags in HTML messages (#1489446) - Fix handling of invalid closing tags in HTML messages (#1489446)

@ -2843,12 +2843,21 @@ class rcube_imap extends rcube_storage
/** /**
* Filter the given list of folders according to access rights * Filter the given list of folders according to access rights
*
* For performance reasons we assume user has full rights
* on all personal folders.
*/ */
protected function filter_rights($a_folders, $rights) protected function filter_rights($a_folders, $rights)
{ {
$regex = '/('.$rights.')/'; $regex = '/('.$rights.')/';
foreach ($a_folders as $idx => $folder) { foreach ($a_folders as $idx => $folder) {
if ($this->folder_namespace($folder) == 'personal') {
continue;
}
$myrights = join('', (array)$this->my_rights($folder)); $myrights = join('', (array)$this->my_rights($folder));
if ($myrights !== null && !preg_match($regex, $myrights)) { if ($myrights !== null && !preg_match($regex, $myrights)) {
unset($a_folders[$idx]); unset($a_folders[$idx]);
} }

Loading…
Cancel
Save