Webiny\Component\Security\Authentication\Firewall::getUser PHP Method

getUser() public method

If the token does not exist, AnonymousUser is returned.
public getUser ( ) : boolean | AbstractUser
return boolean | Webiny\Component\Security\User\AbstractUser
    public function getUser()
    {
        if ($this->userAuthenticated) {
            return $this->user;
        }
        try {
            // get token
            $this->user = new AnonymousUser();
            $tokenData = $this->getToken()->getUserFromToken();
            if (!$tokenData) {
                $this->eventManager()->fire(SecurityEvent::NOT_AUTHENTICATED, new SecurityEvent($this->user));
                $this->userAuthenticated = false;
                return $this->user;
            } else {
                $this->user->populate($tokenData->getUsername(), '', $tokenData->getRoles(), true);
                $this->user->setAuthProviderName($tokenData->getAuthProviderName());
                $this->user->setUserProviderName($tokenData->getUserProviderName());
                $this->eventManager()->fire(SecurityEvent::AUTHENTICATED, new SecurityEvent($this->user));
                $this->setUserRoles();
                $this->userAuthenticated = true;
                return $this->user;
            }
        } catch (\Exception $e) {
            $this->userAuthenticated = true;
            throw new FirewallException($e->getMessage());
        }
    }

Usage Example

Example #1
0
 /**
  * @param Firewall $firewall
  *
  * @dataProvider firewallProvider
  */
 public function testGetUserWhileAuthenticated($firewall)
 {
     $firewall->processLogin('MockProvider');
     // let's authenticate the user
     $user = $firewall->getUser();
     $this->assertInstanceOf('\\Webiny\\Component\\Security\\Tests\\Mocks\\UserMock', $user);
 }