diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2022-07-06 22:51:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-06 22:51:06 +0200 |
commit | 744f1dd5638c7924be9c19621033d67991c65fd2 (patch) | |
tree | 9e1ccedcda433534195d5a98c0f8f9c065fc996e | |
parent | 72274cf0e9186f86187678e7247c9fe17ec0c947 (diff) | |
parent | a0f5aebb89da4f18b37026e72e543bbe66b32980 (diff) | |
download | nextcloud-server-744f1dd5638c7924be9c19621033d67991c65fd2.tar.gz nextcloud-server-744f1dd5638c7924be9c19621033d67991c65fd2.zip |
Merge pull request #33052 from nextcloud/fix/set-display-name
Do not send display name twice for saving
4 files changed, 11 insertions, 3 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index a26479ba0a8..839ac404c94 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -837,7 +837,9 @@ class UsersController extends AUserData { switch ($key) { case self::USER_FIELD_DISPLAYNAME: case IAccountManager::PROPERTY_DISPLAYNAME: - $targetUser->setDisplayName($value); + if (!$targetUser->setDisplayName($value)) { + throw new OCSException('Invalid displayname', 102); + } break; case self::USER_FIELD_QUOTA: $quota = $value; diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php index 6162be54a04..4449302fedd 100644 --- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php +++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php @@ -1486,7 +1486,8 @@ class UsersControllerTest extends TestCase { $targetUser ->expects($this->once()) ->method('setDisplayName') - ->with('NewDisplayName'); + ->with('NewDisplayName') + ->willReturn(true); $targetUser ->expects($this->any()) ->method('getUID') diff --git a/apps/settings/js/federationsettingsview.js b/apps/settings/js/federationsettingsview.js index 9eb0b930733..e05cc9f20f4 100644 --- a/apps/settings/js/federationsettingsview.js +++ b/apps/settings/js/federationsettingsview.js @@ -128,7 +128,8 @@ _.each(this._inputFields, function(field) { if ( field === 'avatar' || - field === 'email' + field === 'email' || + field === 'displayname' ) { return; } diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index 4821a2fc632..fce7551c242 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -215,6 +215,10 @@ class Database extends ABackend implements * Change the display name of a user */ public function setDisplayName(string $uid, string $displayName): bool { + if (mb_strlen($displayName) > 64) { + return false; + } + $this->fixDI(); if ($this->userExists($uid)) { |