Ejemplo n.º 1
0
 function it_doesnt_activate_user_with_wrong_token(UserRepository $repository, User $user, EnableUserCommand $command)
 {
     $command->confirmationToken()->shouldBeCalled()->willReturn('confirmation-token');
     $user->enableAccount()->shouldNotBeCalled();
     $repository->userOfConfirmationToken(new UserToken('confirmation-token'))->shouldBeCalled()->willReturn(null);
     $repository->persist($user)->shouldNotBeCalled();
     $this->shouldThrow(UserTokenNotFoundException::class)->during__invoke($command);
 }
Ejemplo n.º 2
0
 function it_logs_the_user_in(LogInUserCommand $command, UserRepository $repository, User $user)
 {
     $encoder = new DummyUserPasswordEncoder('encodedPassword');
     $command->email()->shouldBeCalled()->willReturn('*****@*****.**');
     $command->password()->shouldBeCalled()->willReturn('plainPassword');
     $user->login('plainPassword', $encoder)->shouldBeCalled();
     $repository->userOfEmail(new UserEmail('*****@*****.**'))->shouldBeCalled()->willReturn($user);
     $repository->persist($user)->shouldBeCalled();
     $this->__invoke($command);
 }
Ejemplo n.º 3
0
 /**
  * Builds the user with the given sql row attributes.
  *
  * @param array $row Array which contains attributes of user
  *
  * @return User
  */
 private function buildUser($row)
 {
     $createdOn = new \DateTimeImmutable($row['created_on']);
     $updatedOn = new \DateTimeImmutable($row['updated_on']);
     $lastLogin = null === $row['last_login'] ? null : new \DateTimeImmutable($row['last_login']);
     $confirmationToken = null;
     if (null !== $row['confirmation_token_token']) {
         $confirmationToken = new UserToken($row['confirmation_token_token']);
         $this->set($confirmationToken, 'createdOn', new \DateTimeImmutable($row['confirmation_token_created_on']));
     }
     $invitationToken = null;
     if (null !== $row['invitation_token_token']) {
         $invitationToken = new UserToken($row['invitation_token_token']);
         $this->set($invitationToken, 'createdOn', new \DateTimeImmutable($row['invitation_token_created_on']));
     }
     $rememberPasswordToken = null;
     if (null !== $row['remember_password_token_token']) {
         $rememberPasswordToken = new UserToken($row['remember_password_token_token']);
         $this->set($rememberPasswordToken, 'createdOn', new \DateTimeImmutable($row['remember_password_token_created_on']));
     }
     $user = User::signUp(new UserId($row['id']), new UserEmail($row['email']), UserPassword::fromEncoded($row['password'], $row['salt']), $this->rolesToArray($row['roles']));
     $user = $this->set($user, 'createdOn', $createdOn);
     $user = $this->set($user, 'updatedOn', $updatedOn);
     $user = $this->set($user, 'lastLogin', $lastLogin);
     $user = $this->set($user, 'confirmationToken', $confirmationToken);
     $user = $this->set($user, 'invitationToken', $invitationToken);
     $user = $this->set($user, 'rememberPasswordToken', $rememberPasswordToken);
     return $user;
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function read()
 {
     if (null === $this->user) {
         return [];
     }
     $roles = array_map(function (UserRole $role) {
         return $role->role();
     }, $this->user->roles());
     $encodedPassword = !$this->user->password() ? null : $this->user->password()->encodedPassword();
     $salt = !$this->user->password() ? null : $this->user->password()->salt();
     $confirmationToken = !$this->user->confirmationToken() ? null : $this->user->confirmationToken()->token();
     $invitationToken = !$this->user->invitationToken() ? null : $this->user->invitationToken()->token();
     $rememberPasswordToken = !$this->user->rememberPasswordToken() ? null : $this->user->rememberPasswordToken()->token();
     return ['id' => $this->user->id()->id(), 'confirmation_token' => $confirmationToken, 'created_on' => $this->user->createdOn(), 'email' => $this->user->email()->email(), 'invitation_token' => $invitationToken, 'last_login' => $this->user->lastLogin(), 'encoded_password' => $encodedPassword, 'salt' => $salt, 'remember_password_token' => $rememberPasswordToken, 'roles' => $roles, 'updated_on' => $this->user->updatedOn()];
 }
Ejemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function remove(User $aUser)
 {
     unset($this->users[$aUser->id()->id()]);
     if ($this->eventBus instanceof UserEventBus) {
         $this->handle($aUser->events());
     }
 }