From 4f910221c4f538fba44c0cafd6ad6c342ccc7f28 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Fri, 17 Jul 2015 18:57:56 +0200
Subject: [PATCH] fix runtime caching in ldap's user manager, fixes #17631

---
 apps/user_ldap/lib/user/manager.php   | 4 ++--
 apps/user_ldap/tests/user/manager.php | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php
index 2f5ee3adfb..b70e057741 100644
--- a/apps/user_ldap/lib/user/manager.php
+++ b/apps/user_ldap/lib/user/manager.php
@@ -110,8 +110,8 @@ class Manager {
 		$user = new User($uid, $dn, $this->access, $this->ocConfig,
 			$this->ocFilesystem, clone $this->image, $this->ocLog,
 			$this->avatarManager);
-		$users['byDN'][$dn]   = $user;
-		$users['byUid'][$uid] = $user;
+		$this->users['byDN'][$dn]   = $user;
+		$this->users['byUid'][$uid] = $user;
 		return $user;
 	}
 
diff --git a/apps/user_ldap/tests/user/manager.php b/apps/user_ldap/tests/user/manager.php
index e86db6b9f8..f7e4a1a5e8 100644
--- a/apps/user_ldap/tests/user/manager.php
+++ b/apps/user_ldap/tests/user/manager.php
@@ -64,6 +64,10 @@ class Test_User_Manager extends \Test\TestCase {
         $manager->setLdapAccess($access);
         $user = $manager->get($inputDN);
 
+        // Now we fetch the user again. If this leads to a failing test,
+        // runtime caching the manager is broken.
+        $user = $manager->get($inputDN);
+
         $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
     }
 
@@ -173,6 +177,10 @@ class Test_User_Manager extends \Test\TestCase {
         $manager->setLdapAccess($access);
         $user = $manager->get($uid);
 
+		// Now we fetch the user again. If this leads to a failing test,
+		// runtime caching the manager is broken.
+		$user = $manager->get($uid);
+
         $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
     }
 
-- 
GitLab