Example #1
0
 public function addUserAction()
 {
     $request = $this->getRequest();
     $registerForm = new RegisterForm();
     //        var_dump($registerForm);die;
     if ($request->isPost()) {
         //recibimos los datos del form
         $postData = $request->getPost();
         //            var_dump($postData);die;
         //validamos los datos enviados
         $registerValidator = $registerForm->setInputFilter(new RegisterValidator($this->getServiceLocator()));
         $registerValidator->setData($postData);
         //            var_dump($registerValidator->isValid());die;
         if ($registerValidator->isValid()) {
             //si son validados continuamos
             //obtenemos los datos validados y filtrados
             $registerData = $registerValidator->getData();
             $customerPrepareData = $this->prepareDataCustomer($registerData);
             //incializamos la clase Entity Customer y le inyectamos los datos
             $userEntity = new User($customerPrepareData);
             //traemos el servicio CustomerTableGateway el cual nos trae el Adapter de la DB
             $userTableGateway = $this->getService('UserTableGateway');
             //inicializamos la clase CustomerDao y le inyectamos el Adapter
             $userDao = new UserDao($userTableGateway);
             //Salvamos el registro en la bd
             $saved = $userDao->saveUser($userEntity);
             //                 print_r($saved);die;
             if ($saved) {
                 //si se guardo la fila en la BD continuamos
                 //enviamos el mail con
                 $sendMail = $this->sendMailRegisterConfirm($userEntity);
                 //seteamos el mesanje de registro exitoso
                 $this->flashMessenger()->addMessage("Registro exitoso!!. Acabamos de enviarle un correo a {$userEntity->email} para confirmar su cuenta", 'success');
                 //$this->flashMessenger()->addMessage("Bienvenido $customerEntity->firstname $customerEntity->lastname !!. Acabamos de enviarle un correo de confirmacion ", 'success');
                 return $this->redirect()->toRoute('account');
             } else {
                 $this->flashMessenger()->addMessage("Disculpe no pudimos procesar su registro ", "error");
                 // throw new \Exception("Not Save Row");
                 return $this->redirect()->toRoute('account');
             }
         } else {
             $messages = $registerValidator->getMessages();
             //print_r($messages);die;
             $this->flashMessenger()->addMessage($messages, 'error');
             return $this->redirect()->toRoute('account');
         }
     }
 }
 /**
  * the registration action- Either returns the registration page or adds an account to the db and sends out an email.
  *
  * @return array|\Zend\Http\Response
  */
 public function registerAction()
 {
     $form = new RegisterForm();
     $form->get('submit')->setValue('Register');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $account = new Account();
         $form->setInputFilter($account->getRegisterInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $account->exchangeArray($form->getData());
             if (!$this->getAccountTable()->getAccountBy(['name' => $account->getName()])) {
                 if (!$this->getAccountTable()->getAccountBy(['email' => $account->getEmail()])) {
                     $account->setUserHash(hash('sha256', $account->getName()));
                     $this->getAccountTable()->saveAccount($account);
                     $this->sendConfirmationMail($account);
                 } else {
                     return ['form' => $form, 'errors' => $errors = ['email' => 'email_taken']];
                 }
             } else {
                 return ['form' => $form, 'errors' => $errors = ['name' => 'name_taken']];
             }
             return $this->redirect()->toRoute('auth', ['action' => 'registersuccess']);
         } else {
             $errors = $form->getMessages();
             return ['form' => $form, 'errors' => $errors];
         }
     }
     return ['form' => $form];
 }