/** * The public registration action - display registration form and register * * @return void */ public function registrationAction() { $registrationForm = new User_Form(); $registrationForm->setAction($this->baseUrl . '/' . Digitalus_Toolbox_Page::getCurrentPageName() . '/p/a/registration'); $registrationForm->getElement('name')->addValidators(array(array('UsernameExistsNot', true))); $registrationForm->onlyRegistrationActionElements(array('legend' => 'Register')); // show form if unsent or invalid if (!$this->_request->isPost() || !$registrationForm->isValid($_POST)) { $this->view->form = $registrationForm; } else { $mdlUser = new Model_User(); $mdlRegistration = new Login_Registration(); $mdlPassword = new Login_Password(); $password = $mdlPassword->getRandomPassword(); $userName = Digitalus_Filter_Post::get('name'); $firstName = Digitalus_Filter_Post::get('first_name'); $lastName = Digitalus_Filter_Post::get('last_name'); $email = Digitalus_Filter_Post::get('email'); $success = false; if ($mdlRegistration->createUser($userName, $firstName, $lastName, $email, $password, 0, $this->moduleData->aclRole)) { if ($mdlRegistration->sendConfirmationMail($userName, $email, $this->moduleData->email)) { $success = true; } } $this->view->userName = $userName; $this->view->email = $email; $this->view->password = $password; $this->view->success = $success; unset($password); } }
protected function login() { $uid = null; $login_pass = Filter::dbSafe('login_pass', $_POST); $login_pseudo = Filter::dbSafe('login_pseudo', $_POST); $login_mail = Filter::dbSafe('login_mail', $_POST); $login_uid = Filter::dbSafe('uid', $_COOKIE); $login_cookie_token = Filter::dbSafe('token', $_COOKIE); $wantAcookie = Filter::dbSafe('wantAcookie', $_REQUEST); $next = Filter::dbSafe('next', $_POST); $login_mixed = filter::dbSafe('login_mixed', $_POST); if ($login_mixed) { $login_pseudo = $login_mixed; $login_mail = $login_mixed; } $auth = $this->auth(); if (!$auth->isAuth()) { $try = 0; // on cherche uid if (!$uid && $login_pass && $login_pseudo) { $try = 1; $Login = new Login_Pseudo($this); $uid = $Login->getUid($login_pseudo); } if (!$uid && $login_pass && $login_mail) { $try = 1; $Login = new Login_Mail($this); $uid = $Login->getUid($login_mail); } if ($uid && $login_pass) { $try = 1; $login = new Login_Password($this); if ($login->check($uid, $login_pass, 1)) { $auth->check($uid); } } elseif ($login_uid && $login_cookie_token) { $try = 1; $Login = new Login_Password($this); if ($Login->checkCookieToken($login_uid, $login_cookie_token)) { $auth->check($login_uid); } } if ($auth->isAuth()) { if ($wantAcookie) { $Login = new Login_Password($this); $login->sendCookieToken($auth->uid()); } $this->event()->trigger('login_success.core', $auth->uid()); } elseif ($try) { $this->event()->trigger('login_fail.core'); } } else { if (isset($_GET['logout']) || Filter::id('a', $_GET) == 'logout' || Filter::id('action', $_GET) == 'logout') { $uid = $auth->uid(); $auth->logout(); $this->event()->trigger('logout.core', $uid); } } if ($auth->isAuth()) { $this->event()->trigger('logged_in.core', $this->auth()->uid()); } }