Browse Source

Merge pull request #23215 from nextcloud/bugfix/noid/only-run-the-query-once

Only run the query to get the account data once
tags/v21.0.0beta1
Roeland Jago Douma 3 years ago
parent
commit
0c89954488
No account linked to committer's email address
1 changed files with 7 additions and 5 deletions
  1. 7
    5
      lib/private/Accounts/AccountManager.php

+ 7
- 5
lib/private/Accounts/AccountManager.php View File

@@ -134,19 +134,21 @@ class AccountManager implements IAccountManager {
public function getUser(IUser $user) {
$uid = $user->getUID();
$query = $this->connection->getQueryBuilder();
$query->select('data')->from($this->table)
$query->select('data')
->from($this->table)
->where($query->expr()->eq('uid', $query->createParameter('uid')))
->setParameter('uid', $uid);
$query->execute();
$result = $query->execute()->fetchAll();
$result = $query->execute();
$accountData = $result->fetchAll();
$result->closeCursor();

if (empty($result)) {
if (empty($accountData)) {
$userData = $this->buildDefaultUserRecord($user);
$this->insertNewUser($user, $userData);
return $userData;
}

$userDataArray = json_decode($result[0]['data'], true);
$userDataArray = json_decode($accountData[0]['data'], true);
$jsonError = json_last_error();
if ($userDataArray === null || $userDataArray === [] || $jsonError !== JSON_ERROR_NONE) {
$this->logger->critical("User data of $uid contained invalid JSON (error $jsonError), hence falling back to a default user record");

Loading…
Cancel
Save