/**
  * Handle new user registration
  * 
  * @param  GrantRoleToUser $command
  * @return void
  */
 public function handle(GrantRoleToUser $command)
 {
     $userId = $command->id;
     $roleId = $command->roleId;
     $user = $this->retrieveUser($userId);
     $role = $this->retrieveRole($roleId);
     $user->grantRole($role);
     $this->userRepository->save($user);
     $this->events->fire($user->releaseEvents());
 }
 /**
  * Handle new user registration
  * 
  * @param  RegisterNewUser $command
  * @return void
  */
 public function handle(RegisterNewUser $command)
 {
     $username = new AccountDomainModels\Username($command->username);
     $email = new FoundationDomainModels\Email($command->email);
     $description = new FoundationDomainModels\Description($command->description);
     $id = $this->userRepository->nextIdentity();
     $roles = count($command->roles) ? $this->buildRoles($command->roles) : $this->roleRepository->getDefaultRoles();
     $this->ensureUsernameIsUnique($username);
     $this->ensureEmailIsUnique($email);
     $user = new AccountDomainModels\User($id, $username, $email, $description, $roles);
     $this->userRepository->save($user);
     $this->events->fire([new UserWasRegistered($user)]);
 }
示例#3
0
 /**
  * Handle user unregistration
  * 
  * @param  DescribeUser $command
  * @return void
  */
 public function handle(DescribeUser $command)
 {
     $id = new AccountDomainModels\UserId($command->id);
     $username = new AccountDomainModels\Username($command->username);
     $email = new FoundationDomainModels\Email($command->email);
     $description = new FoundationDomainModels\Description($command->description);
     $this->ensureUsernameIsUnique($username, $id);
     $this->ensureEmailIsUnique($email, $id);
     $user = $this->retrieveUser($id->value());
     $user->setUsername($username);
     $user->setEmail($email);
     $user->describe($description);
     $this->userRepository->save($user);
     $this->events->fire($user->releaseEvents());
 }