private function checkPasswordNeverUsed($user_id, $password) { $falseLogin = false; try { if (Sentry::getUser() === NULL) { // Need to login a user because Sentry checkHash // works only when a user is logged in. $falseLogin = true; $user = Sentry::findUserById($user_id); // Temporarily log the user in Sentry::login($user, false); } } catch (\RuntimeException $e) { // echo 'Error getting/logging in User'; } $used_passwords = UsedPassword::userId($user_id)->get()->toArray(); foreach ($used_passwords as $key => $data) { try { if (Sentry::checkHash($password, $data['password'])) { // This password was used in the past if ($falseLogin) { Sentry::logout(); } // Logout the temporary logged in user return FALSE; } } catch (\RuntimeException $e) { // echo 'Error using Sentry checkHash'; } } if ($falseLogin) { Sentry::logout(); } // Logout the temporary logged in user return TRUE; }