]> source.dussan.org Git - nextcloud-server.git/commitdiff
bug fix for issue 1739, two changes included:
authorQingping Hou <dave2008713@gmail.com>
Mon, 18 Feb 2013 23:05:58 +0000 (18:05 -0500)
committerQingping Hou <dave2008713@gmail.com>
Mon, 18 Feb 2013 23:05:58 +0000 (18:05 -0500)
* fix typo in OC_Group_Database::DisplayNamesInGroup's SQL clause
* check array_diff return value in OC_Group::displayNamesInGroups,
  when there is no difference between two arrays, it will return
  NULL, so we have to take care of it.

lib/group.php
lib/group/database.php

index 6afe1440030f8fe35cd981da03cb3d09ed810170..8c06ddc0fd0722c0491f0d7c532c71e1708034da 100644 (file)
@@ -308,15 +308,16 @@ class OC_Group {
         * @return array with display names (Key) user ids (value)\r
         */\r
        public static function displayNamesInGroups($gids, $search = '', $limit = -1, $offset = 0) {\r
-               $displayNames = array();\r
+               $displayNames = array();
                foreach ($gids as $gid) {\r
                        // TODO Need to apply limits to groups as total\r
-                       $displayNames = array_merge(
-                               array_diff(
-                                       self::displayNamesInGroup($gid, $search, $limit, $offset),
-                                       $displayNames
-                               ),
-                               $displayNames);
+                       $diff = array_diff(
+                               self::displayNamesInGroup($gid, $search, $limit, $offset),
+                               $displayNames
+                       );
+                       if ($diff) {
+                               $displayNames = array_merge($diff, $displayNames);
+                       }
                }\r
                return $displayNames;\r
        }
index 8816dd8169c216f4b79b20994ea306c81a24eec6..93dc05c53a1be151bd9de3606fb34b5c86f05db5 100644 (file)
@@ -225,7 +225,7 @@ class OC_Group_Database extends OC_Group_Backend {
                $stmt = OC_DB::prepare('SELECT `*PREFIX*users`.`uid`, `*PREFIX*users`.`displayname`'
                        .' FROM `*PREFIX*users`'
                        .' INNER JOIN `*PREFIX*group_user` ON `*PREFIX*group_user`.`uid` = `*PREFIX*users`.`uid`'
-                       .' WHERE `gid` = ? AND `*PREFIX*group_user.uid` LIKE ?',
+                       .' WHERE `gid` = ? AND `*PREFIX*group_user`.`uid` LIKE ?',
                        $limit,
                        $offset);
                $result = $stmt->execute(array($gid, $search.'%'));\r