Example #1
0
 /**
  * registerAction
  *
  * User registration page and post-validation actions
  *
  * @author Joel Peltonen
  * @author ...?
  */
 public function registerAction()
 {
     // if user is logged in, redirect away
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $urlHelper = $this->_helper->getHelper('url');
         $target = $urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirect($target);
     }
     // Create new registration form
     $form = new Default_Form_RegistrationForm();
     $this->view->form = $form;
     // Get requests
     //$request = $this->getRequest();
     // get and validate form data
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         // If form is valid, handle database insertions
         // Else form population (automatic)
         if ($form->isValid($formData)) {
             // user data handling
             $user = new Default_Model_User();
             if (!$user->registerUser($formData)) {
                 $redirect = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
                 $this->flash('registration-usermodel-data-procesing-failure', $redirect);
             }
             // Add register to log
             $logger = Zend_Registry::get('logs');
             if (isset($logger['register'])) {
                 $message = sprintf('Successful register attempt from %s user %s', $_SERVER['REMOTE_ADDR'], $formData['username']);
                 $logger['register']->notice($message);
             }
             // Fetch user id
             $uid = $user->getIdByUsername($formData['username']);
             $userProfiles = new Default_Model_UserProfiles();
             $userProfiles->setUserEmployment($uid, $formData, 0);
             $userProfiles->setUserCity($uid, $formData, 1);
             // check if user is logged in
             $auth = Zend_Auth::getInstance();
             $username = $formData['username'];
             $password = $formData['password'];
             // $model = new Default_Model_User();
             $id = $user->getIdByUsername($username);
             $user = new Default_Model_User($id);
             $result = $user->loginUser($formData);
             // the logging in worked;
             if ($result == true) {
                 // Get user id
                 //$id = $adapter->getResultRowObject()->id_usr;
                 // record login attempt
                 $user->loginSuccess();
                 // create identity data and write it to session
                 $identity = $user->createAuthIdentity();
                 $auth->getStorage()->write($identity);
                 // Add login to log
                 $logger = Zend_Registry::get('logs');
                 if (isset($logger['login'])) {
                     $message = sprintf('Successful login attempt from %s user %s', $_SERVER['REMOTE_ADDR'], $identity->username);
                     $logger['login']->notice($message);
                 }
                 // send phase 2 page
                 $urlHelper = $this->_helper->getHelper('url');
                 $redirect = $urlHelper->url(array('controller' => 'account', 'action' => 'registercomplete', 'language' => $this->view->language), 'lang_default', true);
                 $this->_redirect($redirect);
             } else {
                 // logging in failed
                 $this->view->errormsg = $this->view->translate('account-login-not-successful');
             }
         } else {
             $formData['captcha_text'] = '';
             $form->populate($formData);
         }
     }
 }