summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2019-06-18 00:20:09 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2019-06-18 12:42:03 +0200
commita1f2dbe29ccb66863b70f134098a631053f3db0d (patch)
treea3bf0fe3a3c67a79cb50b6b1532658c3997725a8 /apps/user_ldap
parente432ead04d99e32a99c05cb48a3d77fa045446c9 (diff)
downloadnextcloud-server-a1f2dbe29ccb66863b70f134098a631053f3db0d.tar.gz
nextcloud-server-a1f2dbe29ccb66863b70f134098a631053f3db0d.zip
caches the displayname after an LDAP plugin set it
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r--apps/user_ldap/lib/User_LDAP.php4
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php30
2 files changed, 30 insertions, 4 deletions
diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php
index cdbc2e9b350..ada07aa53a9 100644
--- a/apps/user_ldap/lib/User_LDAP.php
+++ b/apps/user_ldap/lib/User_LDAP.php
@@ -506,7 +506,9 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
*/
public function setDisplayName($uid, $displayName) {
if ($this->userPluginManager->implementsActions(Backend::SET_DISPLAYNAME)) {
- return $this->userPluginManager->setDisplayName($uid, $displayName);
+ $this->userPluginManager->setDisplayName($uid, $displayName);
+ $this->access->cacheUserDisplayName($uid, $displayName);
+ return $displayName;
}
return false;
}
diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php
index f58c5f881f9..e4f7bb8b6d2 100644
--- a/apps/user_ldap/tests/User_LDAPTest.php
+++ b/apps/user_ldap/tests/User_LDAPTest.php
@@ -1391,16 +1391,38 @@ class User_LDAPTest extends TestCase {
}
public function testSetDisplayNameWithPlugin() {
+ $newDisplayName = 'J. Baker';
$this->pluginManager->expects($this->once())
->method('implementsActions')
->with(Backend::SET_DISPLAYNAME)
->willReturn(true);
$this->pluginManager->expects($this->once())
->method('setDisplayName')
- ->with('uid','displayName')
- ->willReturn('result');
+ ->with('uid', $newDisplayName)
+ ->willReturn($newDisplayName);
+ $this->access->expects($this->once())
+ ->method('cacheUserDisplayName');
+
+ $this->assertEquals($newDisplayName, $this->backend->setDisplayName('uid', $newDisplayName));
+ }
+
+ /**
+ * @expectedException \OC\HintException
+ */
+ public function testSetDisplayNameErrorWithPlugin() {
+ $newDisplayName = 'J. Baker';
+ $this->pluginManager->expects($this->once())
+ ->method('implementsActions')
+ ->with(Backend::SET_DISPLAYNAME)
+ ->willReturn(true);
+ $this->pluginManager->expects($this->once())
+ ->method('setDisplayName')
+ ->with('uid', $newDisplayName)
+ ->willThrowException(new HintException('something happned'));
+ $this->access->expects($this->never())
+ ->method('cacheUserDisplayName');
- $this->assertEquals($this->backend->setDisplayName('uid', 'displayName'),'result');
+ $this->backend->setDisplayName('uid', $newDisplayName);
}
public function testSetDisplayNameFailing() {
@@ -1408,6 +1430,8 @@ class User_LDAPTest extends TestCase {
->method('implementsActions')
->with(Backend::SET_DISPLAYNAME)
->willReturn(false);
+ $this->access->expects($this->never())
+ ->method('cacheUserDisplayName');
$this->assertFalse($this->backend->setDisplayName('uid', 'displayName'));
}