public function postRegister(UserModel $user)
 {
     $validator = new Validation();
     $validator->setRule('required', $user->username, null, 'username');
     $validator->setRule('required', $user->password, null, 'password');
     $validator->setRule('email', $user->email, null, 'email');
     if (!$validator->validate()) {
         Session::setError($validator->getErrors());
         Redirect::back();
     }
     if (($result = $this->user->register($user->username, $user->email, $user->password)) !== 1) {
         Session::setError($result);
         Redirect::back();
     }
     Session::setMessage('registered successfully');
     Redirect::to('');
 }
 /**
  * Processes Registration form
  *
  * @param Form $form
  */
 public function registerFormSucceded(Form $form)
 {
     $values = $form->getValues();
     $item = $this->users->getByUsername($values->registration_username);
     if (!$item) {
         //user with this username does not exists
         $token = $this->users->register($values->registration_username, $values->registration_password, $values->mail);
         $this->sendActivationMail($values->mail, $values->registration_username, $token);
         if ($values->name && $values->surname) {
             $this->sendConnectionMail($values->registration_username, $values->name, $values->surname);
         }
         $this->flashMessage('Registrace proběhla úspěšně. Zkontrolujte svůj e-mail pro aktivaci účtu.');
         $this->redirect(':Front:Default:Homepage:');
     } elseif (!$item->active) {
         //not yet activated account => resend the mail
         $token = $this->users->updateToken($item->id);
         $this->sendActivationMail($item->mail, $item->username, $token);
         $this->flashMessage('Zkontrolujte svůj e-mail pro aktivaci účtu.');
         $this->redirect(':Front:Default:Homepage:');
     } else {
         $form->addError('Tento uživatel již existuje. Možná chcete raději obnovit své heslo.');
     }
 }
Exemple #3
0
 public function signup($slug = null)
 {
     $this->data['title'] = 'Join Us';
     // $module_slug = $slug[0];
     $role = new \models\userrole();
     $user = new User();
     $this->data['user_role'] = $role->all();
     //PULL DATA FROM SITESETTINGS
     $document = new \Helpers\Document();
     $details = $document->siteSettings();
     //GET NEW USER STATUS ID
     $this->model->table('user_status');
     $user_status = $this->model->get_row(array("title" => "inactive"));
     $this->data['reg_form'] = $details['reg_form'];
     if (isset($_POST) && !empty($_POST)) {
         if ($_POST['password'] == $_POST['password2']) {
             $encrypted = md5($_POST['password']);
             $row_count = $user->get(array("email" => $_POST['email']));
             if (count($row_count) >= 1) {
                 $this->data['error'] = 'Email exists in our records, please use a different email';
             } else {
                 $insert_array = array('firstname' => $_POST['fname'], 'lastname' => $_POST['lname'], 'email' => $_POST['email'], 'password' => $encrypted, 'role' => $_POST['role'], 'status' => $user_status->id);
                 $hash = $user->register($insert_array);
                 if ($hash != '') {
                     //SEND ACCOUNT DETAILS TO USER
                     $fullname = $_POST['fname'] . ' ' . $_POST['lname'];
                     $subject = 'New Account';
                     $mail = new \helpers\phpmailer\mail();
                     $mail->template('welcome');
                     $mail->generalEmail($_POST['email'], $subject, $fullname, $hash);
                     $this->data['success'] = 'A link has been sent to your email, please click to activate your account';
                 } else {
                     $this->data['error'] = 'Operation Fails, Please contact admin';
                 }
             }
         } else {
             $this->data['error'] = 'Password does not match!';
         }
     }
     View::rendertemplate('header', $this->data);
     View::render('account/signup', $this->data);
     View::rendertemplate('footer', $this->data);
 }
 public function actionRegister()
 {
     User::checkSession();
     $arrayOfStates = User::fetchCountries();
     if (isset($_GET['country_id'])) {
         User::fetchRegions();
         return true;
     } elseif (isset($_GET['region_id'])) {
         User::fetchCities();
         return true;
     } else {
         unset($_GET);
     }
     if (isset($_POST['btn-signup'])) {
         $name = User::sanitizeString($_POST['uname']);
         $email = User::sanitizeString($_POST['email']);
         $pass = User::sanitizeString($_POST['pass']);
         $cpass = User::sanitizeString($_POST['cpass']);
         $country = User::sanitizeString($_POST['countries']);
         $region = User::sanitizeString($_POST['regions']);
         $city = User::sanitizeString($_POST['cities']);
         if (!User::checkName($name)) {
             $error .= 'Please enter your name!<br>';
         }
         if (!User::checkEmail($email)) {
             $error .= 'Please enter a valid email address!<br>';
         }
         if (User::checkEmailExists($email)) {
             $error .= 'That email address is already registered. Do
             you want to log in?<br>';
         } else {
             if (!User::checkPassword($pass)) {
                 $error .= 'Please enter password with at list 8 characters and one capital letter!<br>';
             }
             if (!User::checkRepeatPassword($pass, $cpass)) {
                 $error .= 'Your passwords are different! Please
                         check and repeat!<br>';
             }
             if ($error) {
                 $error = 'There was(were) error(s) in your sign up details:<br>' . $error;
             } else {
                 $pass = hash('ripemd128', $pass);
                 $cpass = hash('ripemd128', $cpass);
                 $result = User::register($name, $email, $pass, $country, $region, $city);
                 $message = 'You\'re registered!<br>Now you can log in!';
             }
         }
     }
     if (isset($_POST['btn-login'])) {
         $email = User::sanitizeString($_POST['logemail']);
         $pass = hash('ripemd128', User::sanitizeString($_POST['logpass']));
         $userId = User::checkUserdata($email, $pass);
         if (!$userId) {
             $error = 'We could not find a user with such email address and password. Please try again.';
         } else {
             User::auth($userId);
             header('Location: \\home\\');
         }
     }
     require_once ROOT . '\\views\\user\\index.php';
     return true;
 }