summaryrefslogtreecommitdiffstats
path: root/lib/private/User/Manager.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2017-08-17 12:08:40 +0200
committerLukas Reschke <lukas@statuscode.ch>2017-08-17 12:08:40 +0200
commited8a98eaa1e44d172b838c5c9caa74261ac27eb1 (patch)
tree3b9a54794fdc298c8583b23c2e45cf7b9a90aed9 /lib/private/User/Manager.php
parenta53aa40b4ddf4c9f868ad03df7131ceee417f2c9 (diff)
downloadnextcloud-server-ed8a98eaa1e44d172b838c5c9caa74261ac27eb1.tar.gz
nextcloud-server-ed8a98eaa1e44d172b838c5c9caa74261ac27eb1.zip
Prevent SQL error message in case of error
`\OC\User\Database::createUser` can throw a PHP exception in case the UID is longer than permitted in the database. This is against it's PHPDocs and we should cast this to `false`, so that the regular error handling triggers in. The easiest way to reproduce is on MySQL: 1. Create user `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` in admin panel 2. Create user `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` in admin panel again 3. See SQL exception as error message Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Diffstat (limited to 'lib/private/User/Manager.php')
-rw-r--r--lib/private/User/Manager.php5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php
index 8f3c98d4b5e..6b6c10ab295 100644
--- a/lib/private/User/Manager.php
+++ b/lib/private/User/Manager.php
@@ -349,7 +349,10 @@ class Manager extends PublicEmitter implements IUserManager {
}
$this->emit('\OC\User', 'preCreateUser', [$uid, $password]);
- $backend->createUser($uid, $password);
+ $state = $backend->createUser($uid, $password);
+ if($state === false) {
+ throw new \InvalidArgumentException($l->t('Could not create user'));
+ }
$user = $this->getUserObject($uid, $backend);
if ($user instanceof IUser) {
$this->emit('\OC\User', 'postCreateUser', [$user, $password]);