/** * @inheritDoc */ protected function createEntity($data) { $user = new User(); $user->setLogin($data['login'])->setEmail($data['email'])->setPassword(md5($data['password']))->setHash(md5($data['hash']))->setConfirm($data['confirm'])->setInRest($data['in_rest'])->setLeftRest($data['left_rest'])->setGoneInRest($this->container->get("core.service.date")->getDateTime($data['gone_in_rest']))->setLastPing($this->container->get("core.service.date")->getDateTime($data['last_ping']))->setClass($data['class'])->setRating($data['rating'])->setWin($data['win'])->setDraw($data['draw'])->setLose($data['lose'])->setLoseTime($data['lose_time'])->setImmortalId($data['immortal_id'])->setAnotherLogin($data['another_login'])->setLastMove($this->container->get("core.service.date")->getDateTime($data['last_move']))->setBalance($data['balance'])->setLag((double) @$data["lag"])->setOnline((bool) @$data['online']); if (isset($data["settings"])) { foreach ($data["settings"] as $settingArray) { /** @var UserSetting $userSetting */ $userSetting = $this->getReference($settingArray["settingReference"]); $userSetting->setValue($settingArray["value"]); $user->setSetting($userSetting); } } return $user; }
/** * @param UserPostRegisterRequest $request * @return User */ public function processPostRegister(UserPostRegisterRequest $request) : User { try { if ($this->repository->findOneByEmail($request->getEmail())) { $this->getRequestError()->addError("email", 'This email was already registered'); } } catch (UserNotFoundException $e) { // that's alright } try { if ($this->repository->findOneByLogin($request->getLogin())) { $this->getRequestError()->addError("login", 'This login was already registered'); } } catch (UserNotFoundException $e) { // that's alright } if ($request->getPassword() !== $request->getPasswordRepeat()) { $this->getRequestError()->addError("password_repeat", 'The password repeat should be the same'); } if ($this->isIpBanned($request->getIp())) { $this->getRequestError()->addError("login", 'You are banned'); } $this->container->get("core.service.error")->throwExceptionIfHasErrors($this->getRequestError(), ResponseStatusCode::FORBIDDEN); $user = new User(); $user->setLogin($request->getLogin())->setEmail($request->getEmail())->setPassword($this->generatePasswordHash($request->getPassword())); $this->initUserSettings($user); $this->saveUser($user); $this->generateUserToken($user); return $user; }