summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/private/User/Database.php6
-rw-r--r--lib/private/User/Manager.php5
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php
index 73506c7d7c5..79032cfd405 100644
--- a/lib/private/User/Database.php
+++ b/lib/private/User/Database.php
@@ -92,7 +92,11 @@ class Database extends Backend implements IUserBackend {
$event = new GenericEvent($password);
$this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event);
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*users` ( `uid`, `password` ) VALUES( ?, ? )');
- $result = $query->execute(array($uid, \OC::$server->getHasher()->hash($password)));
+ try {
+ $result = $query->execute(array($uid, \OC::$server->getHasher()->hash($password)));
+ } catch (\Exception $e) {
+ $result = false;
+ }
// Clear cache
unset($this->cache[$uid]);
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]);