/** * 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); } } }