/** * @param SignInUserRequest $request * @return User * @throws UserAlreadyExistsException */ public function execute($request = null) { $email = $request->email(); $password = $request->password(); $user = $this->userRepository->userOfEmail($email); if (null !== $user) { throw new UserAlreadyExistsException(); } $user = $this->userFactory->build($this->userRepository->nextIdentity(), $email, $password); $this->userRepository->persist($user); return $user; }
public function authenticate($email, $password) { if ($this->isAlreadyAuthenticated()) { return true; } $user = $this->repository->userOfEmail($email); if (!$user) { return false; } if ($user->password() !== $password) { return false; } $this->persistAuthentication($user); return true; }