/**
  * authenticate
  *
  * @param User $user user
  *
  * @return mixed
  * @throws \Exception
  */
 public function authenticate(User $user)
 {
     /* + LOW_LEVEL_PREP */
     if (!$user->isEnabled()) {
         return new Result(Result::FAILURE_UNCATEGORIZED, $user, ['User is disabled.']);
     }
     /* - LOW_LEVEL_PREP */
     /* @event authenticate
      * - expects listener to return
      * Zend\Authentication\Result with
      * Result->identity == to user object ($user)
      */
     $results = $this->getEventManager()->trigger('authenticate', $this, ['user' => $user], function ($result) {
         return $result->isValid();
     });
     $result = $results->last();
     if ($result === null) {
         throw new \Exception('No auth listener registered or no results returned (authenticate).');
     }
     if ($results->stopped()) {
         /*
          * @event authenticateSuccess
          */
         $this->getEventManager()->trigger('authenticateSuccess', $this, ['result' => $result]);
         return new Result(Result::SUCCESS, $this->prepareUser($result->getIdentity()));
     }
     /*
      * @event authenticateFail
      */
     $this->getEventManager()->trigger('authenticateFail', $this, ['result' => $result]);
     return $result;
 }
示例#2
0
 /**
  * testIsEnabled
  *
  * @covers \RcmUser\User\Entity\User::isEnabled
  *
  * @return void
  */
 public function testIsEnabled()
 {
     $user = new User();
     $user->setState(User::STATE_DISABLED);
     $this->assertFalse($user->isEnabled(), 'State check failed.');
 }