Пример #1
0
 /**
  * @param UserInterface|SmallUserInterface $user
  * @return boolean
  */
 protected function handleAuth4UserLogin(SmallUserInterface $user)
 {
     if ($this->isRegisterDynamicImport()) {
         /** @var \PServerCore\Entity\Repository\User $userRepository */
         $userRepository = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getUser());
         if (!$userRepository->getUser4UserName($user->getUsername())) {
             /** @var UserInterface $backendUser */
             if ($backendUser = $this->gameDataService->getUser4Login($user)) {
                 if (!$backendUser->getCreateIp()) {
                     $backendUser->setCreateIp($this->ipService->getIp());
                 }
                 // we only save valid names
                 try {
                     if (!(new EmailAddress())->isValid($backendUser->getEmail())) {
                         $backendUser->setEmail('');
                     }
                 } catch (\Exception $e) {
                     $backendUser->setEmail('');
                 }
                 $backendUser->setPassword($this->bCrypt($user->getPassword()));
                 $entityManager = $this->entityManager;
                 $entityManager->persist($backendUser);
                 $entityManager->flush();
                 $this->setAvailableCountries4User($backendUser, $this->ipService->getIp());
                 $this->addDefaultRole($backendUser);
                 $this->doAuthentication($backendUser);
                 return true;
             }
         }
     }
     return parent::handleAuth4UserLogin($user);
 }