Example #1
0
 /**
  * @param $type
  *
  * @return \PServerCore\Entity\PageInfo|null
  */
 public function getPage4Type($type)
 {
     $cachingKey = Caching::PAGE_INFO . '_' . $type;
     $pageInfo = $this->cachingHelperService->getItem($cachingKey, function () use($type) {
         /** @var \PServerCore\Entity\Repository\PageInfo $repository */
         $repository = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getPageInfo());
         return $repository->getPageData4Type($type);
     });
     return $pageInfo;
 }
Example #2
0
 /**
  * @param UserInterface $user
  */
 public function addSecretQuestion(UserInterface $user)
 {
     if (!$this->collectionOptions->getPasswordOptions()->isSecretQuestion()) {
         return;
     }
     $this->setUser($user);
     /** @var \PServerCore\Entity\Repository\SecretAnswer $repositorySecretAnswer */
     $repositorySecretAnswer = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getSecretAnswer());
     $answer = $repositorySecretAnswer->getAnswer4UserId($this->getUser()->getId());
     if (!$answer) {
         return;
     }
     $this->add(['name' => 'question', 'options' => ['label' => 'SecretQuestion'], 'attributes' => ['placeholder' => 'Question', 'class' => 'form-control', 'type' => 'text', 'disabled' => 'true', 'value' => $answer->getQuestion()->getQuestion(), 'required' => true]]);
     $this->add(['name' => 'answer', 'options' => ['label' => 'SecretAnswer'], 'attributes' => ['placeholder' => 'Answer', 'class' => 'form-control', 'type' => 'text', 'required' => true]]);
 }
Example #3
0
 /**
  * @return ObjectRepository|\PServerCore\Entity\Repository\UserCodes
  */
 protected function getRepositoryManager()
 {
     if (!$this->repositoryManager) {
         $this->repositoryManager = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getUserCodes());
     }
     return $this->repositoryManager;
 }
 /**
  * read from GameBackend the current player [or] as param and save them in database
  *
  * @param int $extraPlayer
  */
 public function setCurrentPlayer($extraPlayer = 0)
 {
     try {
         $player = $this->gameBackendService->getCurrentPlayerNumber();
     } catch (\Exception $e) {
         $player = 0;
     }
     if ($player > 0) {
         $player += $extraPlayer;
     }
     $class = $this->collectionOptions->getEntityOptions()->getPlayerHistory();
     /** @var \PServerCore\Entity\PlayerHistory $playerHistory */
     $playerHistory = new $class();
     $playerHistory->setPlayer($player);
     $this->entityManager->persist($playerHistory);
     $this->entityManager->flush();
 }
Example #5
0
 /**
  * Register constructor.
  * @param EntityManager $entityManager
  * @param AdapterInterface $sanCaptcha
  * @param Collection $collection
  */
 public function __construct(EntityManager $entityManager, AdapterInterface $sanCaptcha, Collection $collection)
 {
     parent::__construct();
     $this->entityManager = $entityManager;
     $this->sanCaptcha = $sanCaptcha;
     $this->collection = $collection;
     $this->add(['type' => Form\Element\Csrf::class, 'name' => 'eugzhoe45gh3o49ug2wrtu7gz50']);
     $this->add(['name' => 'username', 'options' => ['label' => 'Username'], 'attributes' => ['placeholder' => 'Username', 'class' => 'form-control', 'type' => 'text', 'required' => true]]);
     $this->add(['name' => 'email', 'options' => ['label' => 'Email'], 'attributes' => ['placeholder' => 'Email', 'class' => 'form-control', 'type' => 'email', 'required' => true]]);
     $this->add(['name' => 'emailVerify', 'options' => ['label' => 'Email Verify'], 'attributes' => ['placeholder' => 'Email Verify', 'class' => 'form-control', 'type' => 'email', 'required' => true]]);
     $this->add(['name' => 'password', 'options' => ['label' => 'Password'], 'attributes' => ['placeholder' => 'Password', 'class' => 'form-control', 'type' => 'password', 'required' => true]]);
     $this->add(['name' => 'passwordVerify', 'options' => ['label' => 'Password Verify'], 'attributes' => ['placeholder' => 'Password Verify', 'class' => 'form-control', 'type' => 'password', 'required' => true]]);
     if ($this->collection->getConfig()['password']['secret_question']) {
         $entityOptions = $this->collection->getEntityOptions();
         $this->add(['name' => 'question', 'type' => 'DoctrineModule\\Form\\Element\\ObjectSelect', 'options' => ['object_manager' => $this->entityManager, 'target_class' => $entityOptions->getSecretQuestion(), 'property' => 'question', 'label' => 'SecretQuestion', 'empty_option' => '-- select --', 'is_method' => true, 'find_method' => ['name' => 'getQuestions']], 'attributes' => ['class' => 'form-control', 'required' => true]]);
         $this->add(['name' => 'answer', 'options' => ['label' => 'SecretAnswer'], 'attributes' => ['placeholder' => 'Answer', 'class' => 'form-control', 'type' => 'text', 'required' => true]]);
     }
     $captcha = new Form\Element\Captcha('captcha');
     $captcha->setCaptcha($this->sanCaptcha)->setOptions(['label' => 'Please verify you are human.'])->setAttributes(['class' => 'form-control', 'type' => 'text', 'required' => true]);
     $this->add($captcha, ['priority' => -90]);
     $submitElement = new Form\Element\Button('submit');
     $submitElement->setLabel('Register')->setAttributes(['class' => 'btn btn-default', 'type' => 'submit']);
     $this->add($submitElement, ['priority' => -100]);
 }
Example #6
0
 /**
  * @param $subjectKey
  * @param UserInterface $user
  * @param $params
  */
 protected function send($subjectKey, UserInterface $user, $params)
 {
     // we have no mail, so we can skip it
     if (!$user->getEmail()) {
         return;
     }
     // TODO TwigTemplateEngine
     $renderer = $this->viewRenderer;
     //$oResolver = $this->getServiceManager()->get('ZfcTwig\View\TwigResolver');
     //$oResolver->resolve(__DIR__ . '/../../../view');
     //$oRenderer->setResolver($oResolver);
     //$oRenderer->setVars($aParams);
     $viewModel = new ViewModel();
     $viewModel->setTemplate('email/tpl/' . $subjectKey);
     $viewModel->setVariables($params);
     $bodyRender = $renderer->render($viewModel);
     $subject = $this->getSubject4Key($subjectKey);
     try {
         // make a header as html
         $html = new Part($bodyRender);
         $html->type = "text/html";
         $body = new MimeMessage();
         $body->setParts([$html]);
         $mail = new Message();
         $mail->setBody($body);
         $mailOptions = $this->collectionOptions->getMailOptions();
         $mail->setFrom($mailOptions->getFrom(), $mailOptions->getFromName());
         $mail->setTo($user->getEmail());
         $mail->setSubject($subject);
         $transport = new Smtp($this->getSMTPOptions());
         $transport->send($mail);
     } catch (Exception $e) {
         // Logging if smth wrong in Configuration or SMTP Offline =)
         $class = $this->collectionOptions->getEntityOptions()->getLogs();
         /** @var \PServerCore\Entity\Logs $logEntity */
         $logEntity = new $class();
         $logEntity->setTopic('mail_faild');
         $logEntity->setMemo($e->getMessage());
         $logEntity->setUser($user);
         $this->entityManager->persist($logEntity);
         $this->entityManager->flush();
     }
 }
Example #7
0
 /**
  * @return null|\PServerCore\Entity\Repository\SecretAnswer
  */
 protected function getEntityManagerAnswer()
 {
     return $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getSecretAnswer());
 }
 /**
  * @return Validator\UserNameBackendNotExists
  */
 public function getUserNameBackendNotExistsValidator()
 {
     return new Validator\UserNameBackendNotExists($this->gameBackendService, $this->collection->getEntityOptions());
 }
Example #9
0
 /**
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getNewsQueryBuilder()
 {
     /** @var \PServerCore\Entity\Repository\News $repository */
     $repository = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getNews());
     return $repository->getQueryBuilder();
 }
Example #10
0
 /**
  * @param $userId
  *
  * @return null|\PServerCore\Entity\UserInterface
  */
 protected function getUser4Id($userId)
 {
     /** @var \PServerCore\Entity\Repository\User $userRepository */
     $userRepository = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getUser());
     return $userRepository->getUser4Id($userId);
 }
 /**
  * @return AbstractRecord
  */
 public function getEmailValidator()
 {
     /** @var $repositoryUser \Doctrine\Common\Persistence\ObjectRepository */
     $repositoryUser = $this->entityManager->getRepository($this->collectionOptions->getEntityOptions()->getUser());
     return new Validator\NoRecordExists($repositoryUser, 'email');
 }