Example #1
0
 /**
  * @param User $user
  * @return $this
  */
 public function create(User $user)
 {
     $expiresAt = (new DateTime())->add(new DateInterval("P7D"));
     $token = (new Token())->setUser($user)->setToken(Generator::generateToken())->setExpiresAt($expiresAt);
     $this->getManager()->persist($token);
     $this->getManager()->flush();
     $this->deleteExpiresTokens($user);
     return $token;
 }
Example #2
0
 /**
  * @param $username
  * @param $password
  * @param $roleName
  * @return User|null
  * @throws RoleNotFoundException
  * @throws UserExistsException
  */
 public function create($username, $password, $roleName)
 {
     $role = $this->roleRepo->findOneByName($roleName);
     if (!$role instanceof Role) {
         throw new RoleNotFoundException($roleName);
     }
     $user = $this->userRepo->findOneByUsername($username);
     if ($user instanceof User) {
         throw new UserExistsException($username);
     }
     $salt = Generator::generateSalt();
     $encryptedPassword = Generator::hash($salt, $this->secret, $password);
     $user = (new User())->setUsername($username)->setPassword($encryptedPassword)->setRole($role)->setSalt($salt)->setDeleted(false)->setActive(true);
     $this->getManager()->persist($user);
     $this->tokenService->create($user);
     $this->getManager()->flush();
     return $user;
 }