From f33b72677baf254fbf0ddbccab9cd4fafeac4e81 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Tue, 29 Jan 2013 20:41:48 +0100
Subject: [PATCH] LDAP: implement support for ownCloud Display Names

---
 apps/user_ldap/user_ldap.php | 44 ++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 6591d1d5fe..4928ad2e27 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -208,6 +208,50 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
 		return false;
 	}
 
+	/**
+	 * @brief get display name of the user
+	 * @param $uid user ID of the user
+	 * @return display name
+	 */
+	public function getDisplayName($uid) {
+		$cacheKey = 'getDisplayName'.$uid;
+		if(!is_null($displayName = $this->connection->getFromCache($cacheKey))) {
+			return $displayName;
+		}
+
+		$displayName = $this->readAttribute(
+			$this->username2dn($uid),
+			$this->connection->ldapUserDisplayName);
+
+		if($displayName && (count($displayName) > 0)) {
+			$this->connection->writeToCache($cacheKey, $displayName);
+			return $displayName[0];
+		}
+
+		return null;
+	}
+
+	/**
+	 * @brief Get a list of all display names
+	 * @returns array with  all displayNames (value) and the correspondig uids (key)
+	 *
+	 * Get a list of all display names and user ids.
+	 */
+	public function getDisplayNames($search = '', $limit = null, $offset = null) {
+		$cacheKey = 'getDisplayNames-'.$search.'-'.$limit.'-'.$offset;
+		if(!is_null($displayNames = $this->connection->getFromCache($cacheKey))) {
+			return $displayNames;
+		}
+
+		$displayNames = array();
+		$users = $this->getUsers($search, $limit, $offset);
+		foreach ($users as $user) {
+			$displayNames[$user] = $this->getDisplayName($user);
+		}
+		$this->connection->writeToCache($cacheKey, $displayNames);
+		return $displayNames;
+	}
+
 		/**
 	* @brief Check if backend implements actions
 	* @param $actions bitwise-or'ed actions
-- 
GitLab