From 28cd41a2a43ce614199e1b966c1d424efd8b23dd Mon Sep 17 00:00:00 2001
From: krzaczek <pawel@freshmind.pl>
Date: Tue, 4 Oct 2011 15:37:05 +0200
Subject: [PATCH] users_ldap - added getUsers() method to fetch all existing
 users from LDAP server

---
 apps/user_ldap/user_ldap.php | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 1154efc17b..4fb8daf3c4 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -65,7 +65,7 @@ class OC_USER_LDAP extends OC_User_Backend {
 			$this->ds = ldap_connect( $this->ldap_host, $this->ldap_port );
 			   if(ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3))
 				 if(ldap_set_option($this->ds, LDAP_OPT_REFERRALS, 0))
-					  ldap_start_tls($this->ds);
+					  @ldap_start_tls($this->ds);
 		}
 
 		// login
@@ -117,7 +117,36 @@ class OC_USER_LDAP extends OC_User_Backend {
 		$dn = $this->getDn($uid);
 		return !empty($dn);
 	}
+	
+	public function getUsers()
+	{
+		if(!$this->configured)
+		return false;
+	
+		// connect to server
+		$ds = $this->getDs();
+		if( !$ds )
+			return false;
+	
+		// get users
+		$filter = "objectClass=person";
+		$sr = ldap_search( $this->getDs(), $this->ldap_base, $filter );
+		$entries = ldap_get_entries( $this->getDs(), $sr );
+	
+		if( $entries["count"] == 0 )
+			return false;
+		else {
+			$users = array();
+			foreach($entries as $row) {
+				if(isset($row['uid'])) {
+					$users[] = $row['uid'][0];
+				}
+			}
+		}
+	
+		return $users;
+	}
 
 }
 
-?>
+?>
\ No newline at end of file
-- 
GitLab