/** * @param string $username * @param string $password * * @return bool */ public function authenticate($username, $password) { $hasUser = $this->userFacade->hasActiveUserByUsername($username); if (!$hasUser) { return false; } $userTransfer = $this->userFacade->getUserByUsername($username); $isValidPassword = $this->userFacade->isValidPassword($password, $userTransfer->getPassword()); if (!$isValidPassword) { return false; } $userTransfer->setLastLogin((new \DateTime())->format(\DateTime::ATOM)); $token = $this->generateToken($userTransfer); $this->registerAuthorizedUser($token, $userTransfer); $this->userFacade->updateUser(clone $userTransfer); $this->session->migrate(); return true; }
/** * @param string $token * @param string $newPassword * * @return bool */ public function resetPassword($token, $newPassword) { $resetPasswordEntity = $this->authQueryContainer->queryForActiveCode($token)->findOne(); if (empty($resetPasswordEntity)) { return false; } $userTransfer = $this->userFacade->getUserById($resetPasswordEntity->getFkUser()); $userTransfer->setPassword($newPassword); $this->userFacade->updateUser($userTransfer); $resetPasswordEntity->setStatus(SpyResetPasswordTableMap::COL_STATUS_USED); $affectedRows = $resetPasswordEntity->save(); return $affectedRows > 0; }