|
|
|
|
@ -329,28 +329,16 @@ class Database extends ABackend implements |
|
|
|
|
* returns the user id or false |
|
|
|
|
*/ |
|
|
|
|
public function checkPassword(string $loginName, string $password) { |
|
|
|
|
$this->fixDI(); |
|
|
|
|
$found = $this->loadUser($loginName); |
|
|
|
|
|
|
|
|
|
$qb = $this->dbConn->getQueryBuilder(); |
|
|
|
|
$qb->select('uid', 'password') |
|
|
|
|
->from($this->table) |
|
|
|
|
->where( |
|
|
|
|
$qb->expr()->eq( |
|
|
|
|
'uid_lower', $qb->createNamedParameter(mb_strtolower($loginName)) |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
$result = $qb->execute(); |
|
|
|
|
$row = $result->fetch(); |
|
|
|
|
$result->closeCursor(); |
|
|
|
|
|
|
|
|
|
if ($row) { |
|
|
|
|
$storedHash = $row['password']; |
|
|
|
|
if ($found && is_array($this->cache[$loginName])) { |
|
|
|
|
$storedHash = $this->cache[$loginName]['password']; |
|
|
|
|
$newHash = ''; |
|
|
|
|
if (\OC::$server->getHasher()->verify($password, $storedHash, $newHash)) { |
|
|
|
|
if (!empty($newHash)) { |
|
|
|
|
$this->updatePassword($loginName, $newHash); |
|
|
|
|
} |
|
|
|
|
return (string)$row['uid']; |
|
|
|
|
return (string)$this->cache[$loginName]['uid']; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -375,7 +363,7 @@ class Database extends ABackend implements |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$qb = $this->dbConn->getQueryBuilder(); |
|
|
|
|
$qb->select('uid', 'displayname') |
|
|
|
|
$qb->select('uid', 'displayname', 'password') |
|
|
|
|
->from($this->table) |
|
|
|
|
->where( |
|
|
|
|
$qb->expr()->eq( |
|
|
|
|
@ -391,6 +379,7 @@ class Database extends ABackend implements |
|
|
|
|
$this->cache[$uid] = [ |
|
|
|
|
'uid' => (string)$row['uid'], |
|
|
|
|
'displayname' => (string)$row['displayname'], |
|
|
|
|
'password' => (string)$row['password'], |
|
|
|
|
]; |
|
|
|
|
} else { |
|
|
|
|
$this->cache[$uid] = false; |
|
|
|
|
|