Esempio n. 1
0
 public function registraceAction()
 {
     if (!isset($this->logged->nick)) {
         $form = new RegisterForm();
         $request = $this->getRequest();
         if ($request->isPost()) {
             $register = new User();
             $register->setInputs(['nick', 'heslo', 'email']);
             $form->setInputFilter($register->getInputFilter());
             $form->setData($request->getPost());
             if ($form->isValid()) {
                 if ($form->getData()['heslo'] == $form->getData()['heslo_repeat']) {
                     $table = $this->getUserTable();
                     $data = array('nick' => $form->getData()['nick'], 'heslo' => $form->getData()['heslo'], 'email' => $form->getData()['email']);
                     $register->exchangeArray($data);
                     $bool = $table->register($register);
                     if ($bool === true) {
                         $this->logged->nick = $register->nick;
                         $this->logged->admin = 0;
                         // redirect
                     } else {
                         if ($bool == 'nick') {
                             $error = $this->msg->get('login.error.nickUsed', ['nick' => $data['nick']]);
                         } else {
                             if ($bool == 'email') {
                                 $error = $this->msg->get('login.error.emailUsed', ['email' => $data['email']]);
                             } else {
                                 $error = $this->msg->get('other.error.unknownError');
                             }
                         }
                     }
                 } else {
                     $error = $this->msg->get('login.error.passwordsNotMatching');
                 }
             } else {
                 $error = $this->msg->get('form.error.invalidData');
             }
         }
         return array('form' => $form, 'error' => isset($error) ? $error : null, 'menu' => new Menu($this->url()->fromRoute("application"), array("login", "registrace", "obnovit" => "zapomenuté heslo"), "registrace"));
     } else {
         return $this->redirect()->toRoute('application/default', array('controller' => 'profil'));
     }
 }
Esempio n. 2
0
 /**
  * Cria o registro e gera todas as dependências do mesmo.
  *
  * @return Register|bool
  */
 public function save()
 {
     if ($this->_form && $this->_job && $this->_isValid === true) {
         $recruiterValidator = new RecruiterValidator();
         $recruiterValidator->setData($this->_form->getData(), true);
         $recruiterValidator->setRules($this->_job->getRules());
         $recruiterValidator->setDefaultRule($this->_job->getDefaultRule());
         $result = $recruiterValidator->run();
         if ($result !== false) {
             $objectManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
             $jobQuestionRepository = $objectManager->getRepository('\\Application\\Entity\\JobQuestion');
             $jobRuleRepository = $objectManager->getRepository('\\Application\\Entity\\JobRule');
             $registerRepository = $objectManager->getRepository('\\Application\\Entity\\Register');
             $data = (array) $this->_form->getData();
             $register = new Register();
             $register->job = $this->_job;
             $register->name = $data['name'];
             $register->email = $data['email'];
             $answersData = $recruiterValidator->prepareData();
             $rulesData = $recruiterValidator->prepareRules($result->rules);
             $objectManager->persist($register);
             foreach ($answersData as $aData) {
                 $registerQuestion = new RegisterQuestion();
                 $registerQuestion->register = $register;
                 $registerQuestion->questions = $jobQuestionRepository->find($aData['job_question_id']);
                 $registerQuestion->value = $aData['value'];
                 $objectManager->persist($registerQuestion);
             }
             foreach ($rulesData as $rData) {
                 $registerRule = new RegisterJobRule();
                 $registerRule->register = $register;
                 $registerRule->rules = $jobRuleRepository->find($rData['job_rule_id']);
                 $objectManager->persist($registerRule);
             }
             $objectManager->flush();
             $registerRepository->clear();
             $register = $registerRepository->find($register->id);
             $this->prepareEmails($register);
             return $register;
         }
     }
     return false;
 }