]> source.dussan.org Git - nextcloud-server.git/commitdiff
make getDisplayNames optional feature for Group Backends, fall back to internal names
authorArthur Schiwon <blizzz@owncloud.com>
Tue, 5 Mar 2013 20:22:34 +0000 (21:22 +0100)
committerArthur Schiwon <blizzz@owncloud.com>
Tue, 5 Mar 2013 20:22:34 +0000 (21:22 +0100)
lib/group.php
lib/group/backend.php

index 88f0a2a032ccb60f98aa0980275459db538c1b03..d1a830730b755a18398e0c052281bad2482730b6 100644 (file)
@@ -294,7 +294,13 @@ class OC_Group {
        public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) {
                $displayNames=array();
                foreach(self::$_usedBackends as $backend) {
-                       $displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames);
+                       if($backend->implementsActions(OC_GROUP_BACKEND_GET_DISPLAYNAME)) {
+                               $displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames);
+                       } else {
+                               $users = $backend->usersInGroup($gid, $search, $limit, $offset);
+                               $names = array_combine($users, $users);
+                               $displayNames = array_merge($names, $displayNames);
+                       }
                }
                return $displayNames;
        }
index 26a784efb28bf2551e0c64d840bd4facbf48b820..2e17b5d0b7f9f805b7e5d47572e21d558286f7a0 100644 (file)
@@ -33,6 +33,7 @@ define('OC_GROUP_BACKEND_CREATE_GROUP',      0x00000001);
 define('OC_GROUP_BACKEND_DELETE_GROUP',      0x00000010);
 define('OC_GROUP_BACKEND_ADD_TO_GROUP',      0x00000100);
 define('OC_GROUP_BACKEND_REMOVE_FROM_GOUP',  0x00001000);
+define('OC_GROUP_BACKEND_GET_DISPLAYNAME',   0x00010000);
 
 /**
  * Abstract base class for user management
@@ -43,6 +44,7 @@ abstract class OC_Group_Backend implements OC_Group_Interface {
                OC_GROUP_BACKEND_DELETE_GROUP => 'deleteGroup',
                OC_GROUP_BACKEND_ADD_TO_GROUP => 'addToGroup',
                OC_GROUP_BACKEND_REMOVE_FROM_GOUP => 'removeFromGroup',
+               OC_GROUP_BACKEND_GET_DISPLAYNAME => 'displayNamesInGroup',
        );
 
        /**