/** * 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)]); }
/** * 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()); }