From 72c293e834a41f7c0368ead099513deb8388cbc9 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Tue, 5 Mar 2013 21:23:58 +0100
Subject: [PATCH] LDAP: implementation of displayNamesInGroup

---
 apps/user_ldap/group_ldap.php  | 17 ++++++++++++++---
 apps/user_ldap/group_proxy.php | 16 ++++++++++++++++
 2 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 4fd4c63691..efa5f8b4fe 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -209,6 +209,19 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
 		return $groupUsers;
 	}
 
+	/**
+	 * @brief get a list of all display names in a group
+	 * @returns array with display names (value) and user ids(key)
+	 */
+	public function displayNamesInGroup($gid, $search, $limit, $offset) {
+		$users = $this->usersInGroup($gid, $search, $limit, $offset);
+		$displayNames = array();
+		foreach($users as $user) {
+			$displayNames[$user] = \OC_User::getDisplayName($user);
+		}
+		return $displayNames;
+	}
+
 	/**
 	 * @brief get a list of all groups
 	 * @returns array with group names
@@ -287,8 +300,6 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
 	* compared with OC_USER_BACKEND_CREATE_USER etc.
 	*/
 	public function implementsActions($actions) {
-		//always returns false, because possible actions are modifying
-		// actions. We do not write to LDAP, at least for now.
-		return false;
+		return (bool)(OC_GROUP_BACKEND_GET_DISPLAYNAME	& $actions);
 	}
 }
diff --git a/apps/user_ldap/group_proxy.php b/apps/user_ldap/group_proxy.php
index 5aa1aef0e0..8f2e34e9b7 100644
--- a/apps/user_ldap/group_proxy.php
+++ b/apps/user_ldap/group_proxy.php
@@ -135,6 +135,22 @@ class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface {
 		return $users;
 	}
 
+	/**
+	 * @brief get a list of all display names in a group
+	 * @returns array with display names (value) and user ids(key)
+	 */
+	public function displayNamesInGroup($gid, $search, $limit, $offset) {
+		$displayNames = array();
+
+		foreach($this->backends as $backend) {
+		    $backendUsers = $backend->displayNamesInGroup($gid, $search, $limit, $offset);
+			if (is_array($backendUsers)) {
+				$displayNames = array_merge($displayNames, $backendUsers);
+			}
+		}
+		return $displayNames;
+	}
+
 	/**
 	 * @brief get a list of all groups
 	 * @returns array with group names
-- 
GitLab