Fix creation of new user and display the correct error message

Signed-off-by: Christopher Ng <chrng8@gmail.com>
pull/33625/head
Christopher Ng 4 years ago
parent 2576609aac
commit d59585974e
  1. 15
      apps/provisioning_api/lib/Controller/UsersController.php
  2. 4
      lib/private/User/Database.php
  3. 3
      lib/private/User/User.php
  4. 3
      lib/public/IUser.php
  5. 3
      lib/public/User/Backend/ISetDisplayNameBackend.php

@ -426,7 +426,14 @@ class UsersController extends AUserData {
}
if ($displayName !== '') {
$this->editUser($userid, self::USER_FIELD_DISPLAYNAME, $displayName);
try {
$this->editUser($userid, self::USER_FIELD_DISPLAYNAME, $displayName);
} catch (OCSException $e) {
if ($newUser instanceof IUser) {
$newUser->delete();
}
throw $e;
}
}
if ($quota !== '') {
@ -837,8 +844,10 @@ class UsersController extends AUserData {
switch ($key) {
case self::USER_FIELD_DISPLAYNAME:
case IAccountManager::PROPERTY_DISPLAYNAME:
if (!$targetUser->setDisplayName($value)) {
throw new OCSException('Invalid displayname', 102);
try {
$targetUser->setDisplayName($value);
} catch (InvalidArgumentException $e) {
throw new OCSException($e->getMessage(), 101);
}
break;
case self::USER_FIELD_QUOTA:

@ -212,11 +212,13 @@ class Database extends ABackend implements
* @param string $displayName The new display name
* @return bool
*
* @throws \InvalidArgumentException
*
* Change the display name of a user
*/
public function setDisplayName(string $uid, string $displayName): bool {
if (mb_strlen($displayName) > 64) {
return false;
throw new \InvalidArgumentException('Invalid displayname');
}
$this->fixDI();

@ -154,6 +154,9 @@ class User implements IUser {
*
* @param string $displayName
* @return bool
*
* @since 25.0.0 Throw InvalidArgumentException
* @throws \InvalidArgumentException
*/
public function setDisplayName($displayName) {
$displayName = trim($displayName);

@ -58,6 +58,9 @@ interface IUser {
* @param string $displayName
* @return bool
* @since 8.0.0
*
* @since 25.0.0 Throw InvalidArgumentException
* @throws \InvalidArgumentException
*/
public function setDisplayName($displayName);

@ -36,6 +36,9 @@ interface ISetDisplayNameBackend {
* @param string $uid The username
* @param string $displayName The new display name
* @return bool
*
* @since 25.0.0 Throw InvalidArgumentException
* @throws \InvalidArgumentException
*/
public function setDisplayName(string $uid, string $displayName): bool;
}

Loading…
Cancel
Save