diff --git a/src/Model/User.php b/src/Model/User.php index 01bcce28d9..a7f59b6a3d 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -1,22 +1,71 @@ $user_info, + 'blocked' => 0, + 'account_expired' => 0, + 'account_removed' => 0, + 'verified' => 1 + ], + ['limit' => 1] + ); + } elseif (is_string($user_info)) { + $user = dba::fetch_first('SELECT `uid`, `password` + FROM `user` + WHERE (`email` = ? OR `username` = ? OR `nickname` = ?) + AND `blocked` = 0 + AND `account_expired` = 0 + AND `account_removed` = 0 + AND `verified` = 1 + LIMIT 1', + $user_info, + $user_info, + $user_info + ); + } else { + $user = $user_info; + } + + if (!DBM::isResult($user) || !isset($user['uid']) || !isset($user['password'])) { + return false; + } + + $password_hashed = hash('whirlpool', $password); + + if ($password_hashed !== $user['password']) { + return false; + } + + return $user['uid']; + } + /** * @param object $uid user to remove * @return void