diff --git a/lib/Controller/OcsApiController.php b/lib/Controller/OcsApiController.php index 2ab4f1ac..3f61185d 100644 --- a/lib/Controller/OcsApiController.php +++ b/lib/Controller/OcsApiController.php @@ -49,6 +49,9 @@ public function createUser( ): DataResponse { $backendUser = $this->userMapper->getOrCreate($providerId, $userId); $user = $this->userManager->get($backendUser->getUserId()); + if ($user === null) { + throw new \RuntimeException('Unable to get user that was just created with userId=' . $backendUser->getUserId()); + } if ($displayName) { if ($displayName !== $backendUser->getDisplayName()) { diff --git a/lib/Db/User.php b/lib/Db/User.php index 03126e00..f7b6f6c9 100644 --- a/lib/Db/User.php +++ b/lib/Db/User.php @@ -27,5 +27,6 @@ class User extends Entity { public function __construct() { $this->addType('userId', Types::STRING); + $this->addType('displayName', Types::STRING); } } diff --git a/lib/Db/UserMapper.php b/lib/Db/UserMapper.php index 2f91604c..b2083c33 100644 --- a/lib/Db/UserMapper.php +++ b/lib/Db/UserMapper.php @@ -167,7 +167,10 @@ public function getOrCreate(int $providerId, string $sub, bool $id4me = false): $user = new User(); $user->setUserId($userId); - return $this->insert($user); + $user->setDisplayName(''); + $user = $this->insert($user); + $this->userCache->set($userId, $user); + return $user; } /**