/**
  * 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);
     }
 }
Beispiel #2
0
 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());
     }
 }