]> source.dussan.org Git - nextcloud-server.git/commitdiff
LDAP: sort users on server-side
authorArthur Schiwon <blizzz@owncloud.com>
Tue, 26 Feb 2013 21:27:09 +0000 (22:27 +0100)
committerArthur Schiwon <blizzz@owncloud.com>
Tue, 26 Feb 2013 21:27:09 +0000 (22:27 +0100)
apps/user_ldap/lib/access.php

index 901299e7c219eeccaf0b9717f12b1eafd860a62a..05249b8f16380f0583ed2e62e31199fc40c46046 100644 (file)
@@ -624,7 +624,8 @@ abstract class Access {
         * @brief executes an LDAP search
         * @param $filter the LDAP filter for the search
         * @param $base an array containing the LDAP subtree(s) that shall be searched
-        * @param $attr optional, when a certain attribute shall be filtered out
+        * @param $attr optional, array, one or more attributes that shall be
+        * retrieved. Results will according to the order in the array.
         * @returns array with the search result
         *
         * Executes an LDAP search
@@ -656,6 +657,14 @@ abstract class Access {
                        \OCP\Util::writeLog('user_ldap', 'Attempt for Paging?  '.print_r($pagedSearchOK, true), \OCP\Util::ERROR);
                        return array();
                }
+
+               // Do the server-side sorting
+               foreach(array_reverse($attr) as $sortAttr){
+                       foreach($sr as $searchResource) {
+                               ldap_sort($link_resource, $searchResource, $sortAttr);
+                       }
+               }
+
                $findings = array();
                foreach($sr as $key => $res) {
                    $findings = array_merge($findings, ldap_get_entries($link_resource, $res ));