Jarves\Client\UserOperator::login PHP Method

login() public method

public login ( string $username, string $password, null | string $requiredGroupRole = null ) : boolean
$username string
$password string
$requiredGroupRole null | string
return boolean
    public function login($username, $password, $requiredGroupRole = null)
    {
        if (empty($username) || empty($password)) {
            return false;
        }
        $user = $this->userProvider->loadUserByUsername($username);
        if (!$user) {
            $this->logger->warning(sprintf('Login failed for "%s". User not found', $username));
            sleep(1);
            return false;
        }
        if (null !== $requiredGroupRole) {
            $groupRoles = $user->getGroupRoles();
            if (!in_array($requiredGroupRole, $groupRoles)) {
                $this->logger->warning(sprintf('Login failed for "%s". Not in requested group role "%s" vs "%s"', $username, $requiredGroupRole, implode(',', $groupRoles)));
                sleep(1);
                return false;
            }
        }
        $encoder = $this->encoderFactory->getEncoder($user);
        if (!$encoder->isPasswordValid($user->getPassword(), $password, null)) {
            $this->logger->warning(sprintf('Login failed for "%s". Password missmatch ', $username));
            sleep(1);
            return false;
        }
        $this->manualLogin($user);
        return true;
    }

Usage Example

Example #1
0
 /**
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function doLogin(Request $request)
 {
     $success = $this->userOperator->login($request->request->get('email'), $request->request->get('password'));
     $session = $request->getSession();
     $session->start();
     if (!$success && $session instanceof Session) {
         $session->getFlashBag()->add('error', 'LOGIN_FAILED');
     }
     return $this->loginForm();
 }