Пример #1
0
 public function indexAction()
 {
     $jobId = 1;
     $objectManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     $jobRespository = $objectManager->getRepository('\\Application\\Entity\\Job');
     $job = $jobRespository->find($jobId);
     if ($job) {
         $addFields = $job->getFieldQuestions();
         $form = new RegisterForm($addFields);
         $form->setData($this->params()->fromPost());
         if ($this->getRequest()->getMethod() == 'POST') {
             /**
              * @var $registerService RegisterService
              */
             $registerService = $this->getServiceLocator()->get('RegisterService');
             $registerService->setJob($job);
             $registerService->setForm($form);
             if ($registerService->isValid()) {
                 $register = $registerService->save();
                 if ($register) {
                     return $this->redirect()->toUrl('application/index/success');
                 }
             }
         }
         return new ViewModel(array('form' => $form, 'job' => $job, 'addFields' => array_keys($addFields)));
     } else {
         return $this->redirect()->toUrl('application/index/error');
     }
 }
Пример #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;
 }
Пример #3
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'));
     }
 }
Пример #4
0
 /**
  * Injecting Zend Translate and Doctrine ORM into Forms, setting filters and hydrators
  */
 public function getFormElementConfig()
 {
     return array('factories' => array('contactForm' => function ($sm) {
         $form = new Form\ContactForm('contactform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         $form->setInputFilter(new Form\ContactFilter());
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'registerForm' => function ($sm) {
         $form = new Form\RegisterForm('registerform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         //$form->setInputFilter(new Form\RegisterFilter); //set in Controller as using Doctrine2
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'forgotpwdForm' => function ($sm) {
         $form = new Form\ForgotpwdForm('forgotpwdform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         //$form->setInputFilter(new Form\ForgotpwdFilter); //set in Controller as using Doctrine2
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'resetpwdForm' => function ($sm) {
         $form = new Form\ResetpwdForm('resetpwdform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         //$form->setInputFilter(new Form\ResetpwdFilter); //set in Controller as using Doctrine2
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'loginForm' => function ($sm) {
         $form = new Form\LoginForm('loginform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         $form->setInputFilter(new Form\LoginFilter());
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'profileForm' => function ($sm) {
         $form = new Form\ProfileForm('profileform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         //$form->setInputFilter(new Form\ProfileFilter); //set in Controller as using Doctrine2
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }, 'newsForm' => function ($sm) {
         $form = new Form\NewsForm('newsform', $sm->getServiceLocator()->get('translator'), $sm->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'), array());
         //$form->setInputFilter(new Form\NewsFilter); //set in Controller as using Doctrine2
         $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
         return $form;
     }));
 }
    public function indexAction()
    {
        $form = new RegisterForm();
        $request = $this->getRequest();
        if ($request->isPost()) {
            // Initializing User Model
            $user = new User();
            // Getting Data Posted
            $data = $request->getPost();
            $form->setInputFilter($user->getInputFilter());
            $form->setData($data);
            $sm = $this->getServiceLocator();
            $appArray = $sm->get('Config')['app'];
            $appId = base64_decode($data->appId);
            //var_dump($form->isValid());
            if (array_key_exists($appId, $appArray)) {
                if ($form->isValid()) {
                    if ($this->getUserTable()->isUniqueEmail($data->email)) {
                        $crypt = new Crypt();
                        $output = $crypt->encryptArrayResponse($data->email);
                        $from = '*****@*****.**';
                        $email = $data->email;
                        $assunto = 'Ativação Conta MarkSend';
                        $activationLink = $appArray[$appId]['url'] . 'user/activate/' . urlencode(base64_encode($output));
                        $mensagem = <<<EOD
                            <a href='{$activationLink}'>{$activationLink}</a>
EOD;
                        $ses = new SimpleEmailService('AKIAIX32JUETXGGVTYGA', '1/D6IFvP6VAs3yKsqTsh7l179nj7m5PBogwAYc23');
                        //cria uma nova instancia
                        $m = new SimpleEmailServiceMessage();
                        //seta valores definidos nas variaveis acima
                        $m->addTo($email);
                        $m->setFrom($from);
                        $m->setSubjectCharset('ISO-8859-1');
                        $m->setMessageCharset('ISO-8859-1');
                        $m->setSubject('=?UTF-8?B?' . base64_encode($assunto) . '?= ');
                        $m->setMessageFromString(NULL, $mensagem);
                        //envia email
                        $ses->sendEmail($m);
                        $user->exchangeArray($data);
                        $saveUser = $this->getUserTable()->saveUser($user);
                        if ($saveUser > 0) {
                            //Salvou
                            $response = array('success' => true);
                        } else {
                            //Deu algo errado e nao salvou =/
                            $response = array('success' => false, 'errorCode' => '1', 'message' => 'Not saved');
                        }
                    } else {
                        //Email ja Cadastrado
                        $response = array('success' => false, 'errorCode' => '2', 'message' => 'Email already register');
                    }
                } else {
                    // Form Invalido
                    $response = array('success' => false, 'errorCode' => '3', 'message' => 'Invalid Form');
                }
                $crypt = new Crypt();
                $output = $crypt->encryptArrayResponse($response);
            } else {
                //throw new \Exception('Invalid AppId');
                $crypt = new Crypt();
                $output = $crypt->encryptArrayResponse('deu ruim hein');
            }
        }
        $url = $appArray[$appId]['url'] . 'register/?q=' . $output;
        return $this->redirect()->toUrl($url);
    }
Пример #6
0
 public function indexAction()
 {
     $fb_login = new Container('facebook');
     $google_login = new Container('google');
     $linkedin_login = new Container('linkedin');
     $social_media_id = '';
     if (isset($fb_login->social_id)) {
         $common_object = $fb_login;
         $social_media_id = $fb_login->social_id;
     }
     if (isset($google_login->social_id)) {
         $common_object = $google_login;
         $social_media_id = $google_login->social_id;
     }
     if (isset($linkedin_login->social_id)) {
         $common_object = $linkedin_login;
         $social_media_id = $linkedin_login->social_id;
     }
     $api = new Api();
     $auth = new FrontEndAuth();
     $session = new Container('frontend');
     $loginError = "";
     $redirectUrl = array('controller' => 'index');
     if ($auth->hasIdentity()) {
         //$redirectUrl = array('controller'=>'index');
         //$redirectUrl = array('controller'=>'login', 'action' => 'dashboard');
         return $this->redirect()->toRoute(null, $redirectUrl);
     }
     //var_dump($session->user_name); die;
     $common = new Common();
     $form = new LoginForm();
     $register_form = new RegisterForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         //die('hello');
         $register = new Register();
         $register_form->setInputFilter($register->getInputFilter());
         $data = $request->getPost()->toArray();
         $register_form->setData($data);
         //$validation_result = json_decode($this->passwordValidation($data['confirm_password']), true);
         if ($register_form->isValid()) {
             $loginError = $validation_result['msg'];
             //if(!$validation_result['error']){
             $loginError = '';
             unset($data['confirm_password'], $data['register_submit']);
             //die('hello');
             $api_url = $this->getServiceLocator()->get('Config')['api_url']['value'];
             $url = $api_url . "/api/users/";
             $data['op'] = 'register';
             $data['social_media_id'] = $social_media_id;
             $data['status_id'] = $data['user_type_id'] == 4 ? 9 : 5;
             $res = $api->curl($url, $data, "POST");
             if ($res->getStatusCode() == 201) {
                 $content = json_decode($res->getBody(), true);
                 $common->addChatAccount($this->getServiceLocator()->get('Config')['chatpath']['url'], $content, $data, $request);
                 // Creating account for live chat
                 $newsletter = $content['user_type_id'] == 3 ? 1 : 4;
                 $common->addFeature($api_url, array('user_id' => $content['id'], 'email' => 1, 'sms' => 1, 'chat' => 0, 'newsletter' => $newsletter));
                 // Adding user feature setting
                 $common->sendMail($api_url, $content['email'], '', 21, '', array('/{{user_name}}/i'), array($content['first_name'] . ' ' . $content['last_name']));
                 $session->userid = $content['id'];
                 $session->first_name = $content['first_name'];
                 $session->last_name = $content['last_name'];
                 $session->email = $content['email'];
                 $session->user_name = $content['user_name'];
                 $session->user_type_id = $content['user_type_id'];
                 $session->user_data = $content;
                 // adding default subscription
                 if ($session->user_type_id == 3) {
                     $common->addSubscription($api_url, array('user_id' => $session->userid));
                 }
                 $auth->wordpress_create_user($session->user_name, $session->email, $data['confirm_password']);
                 $auth->wordpress_login($session->user_name);
                 $bookingData = new Container('bookingData');
                 //var_dump($res); die;
                 //return ($session->user_type_id == 4) ? $this->redirect()->toRoute('consumer', array('action' => 'dashboard')) : $this->redirect()->toRoute('practitioner', array('action' => 'dashboard'));
                 if (isset($bookingData->bookingData)) {
                     return $this->redirect()->toRoute('booking', array('action' => 'schedule', 'id' => $bookingData->sp));
                 } else {
                     if ($this->getRequest()->getQuery('lasturl') != '') {
                         return $this->redirect()->toUrl($this->getRequest()->getQuery('lasturl'));
                     } else {
                         return $session->user_type_id == 4 ? $this->redirect()->toRoute('consumer', array('action' => 'dashboard')) : $this->redirect()->toRoute('practitioner', array('action' => 'dashboard'));
                     }
                 }
                 //return $this->redirect()->toRoute(null, $redirectUrl);
             } else {
                 $errors = json_decode($res->getBody(), true);
                 foreach ($errors as $key => $value) {
                     if (isset($value[0])) {
                         $register_form->setMessages(array($key => array($value[0])));
                     }
                 }
                 $this->errors = $register_form->getMessages();
                 // added by Ritesh to get error messages
             }
             //var_dump($errors); die;
             //}// validation condition
         } else {
             $this->errors = $register_form->getMessages();
         }
     }
     $view = new ViewModel(array('form' => $form, 'register_form' => $register_form, 'loginError' => $loginError, 'fb_login' => $common_object, 'errors' => $this->errors));
     $view->setTemplate('application/login/index.phtml');
     return $view;
 }