Ejemplo n.º 1
0
 public function action_create()
 {
     $val = Model_User::validate('create');
     if (Input::method() == 'POST') {
         if ($val->run()) {
             $user = Model_User::forge(array('username' => \Fuel\Core\Input::post('username'), 'email' => \Fuel\Core\Input::post('email'), 'group' => \Fuel\Core\Input::post('group'), 'password' => \Fuel\Core\Input::post('password'), 'first_name' => \Fuel\Core\Input::post('first_name'), 'last_name' => \Fuel\Core\Input::post('last_name'), 'target_billable' => \Fuel\Core\Input::post('target_billable'), 'target_unbillable' => \Fuel\Core\Input::post('target_unbillable')));
             try {
                 if ($user and Auth\Auth::create_user($user->username, $user->password, $user->email, $user->group, array('fullname' => ''))) {
                     Session::set_flash('success', e('Added user #' . $user->id . '.'));
                     Response::redirect('admin/users');
                 } else {
                     Session::set_flash('error', e('Could not save user.'));
                 }
             } catch (\SimpleUserUpdateException $ex) {
                 // duplicate email address
                 if ($ex->getCode() == 2) {
                     Fuel\Core\Session::set_flash('error', 'Email already exists.');
                 } elseif ($ex->getCode() == 3) {
                     Fuel\Core\Session::set_flash('error', 'Username already exists.');
                 } else {
                     Fuel\Core\Session::set_flash('error', $ex->getMessage());
                 }
             }
         } else {
             Session::set_flash('error', $val->error());
         }
     }
     $this->template->set_global('user', new Model_User(array('id' => 0)), false);
     $this->template->set_global('val', $val, false);
     $this->template->set_global('groups', $this->get_groups_list());
     $this->template->title = "Users";
     $this->template->content = View::forge('admin/users/create');
 }
Ejemplo n.º 2
0
 public function action_register()
 {
     if (Auth\Auth::check()) {
         Fuel\Core\Session::set_flash('error', 'You cannot register as a user whilst you are logged in.');
         Fuel\Core\Response::redirect('/');
     }
     $val = Fuel\Core\Validation::forge('user_registration_validator');
     // add validation rules
     $val->add('fullname', 'Your fullname')->add_rule('required')->add_rule('min_length', 3)->add_rule('max_length', 255);
     $val->add('password', 'Your password')->add_rule('required')->add_rule('min_length', 5);
     $val->add('confirm_password', 'Confirm password')->add_rule('required');
     if (\Fuel\Core\Input::method() == 'POST') {
         // run validation on POST
         if ($val->run(\Fuel\Core\Input::post())) {
             try {
                 $created = Auth\Auth::create_user(\Fuel\Core\Input::post('username'), \Fuel\Core\Input::post('password'), \Fuel\Core\Input::post('email'), 1, array('fullname' => \Fuel\Core\Input::post('fullname')));
                 if ($created) {
                     Fuel\Core\Session::set_flash('success', 'New account created.');
                     Fuel\Core\Response::redirect('user');
                 } else {
                     Fuel\Core\Session::set_flash('error', 'Registration error: Failed to create account.');
                 }
             } catch (\SimpleUserUpdateException $ex) {
                 // duplicate email address
                 if ($ex->getCode() == 2) {
                     Fuel\Core\Session::set_flash('error', 'Email already exists.');
                 } elseif ($ex->getCode() == 3) {
                     Fuel\Core\Session::set_flash('error', 'Username already exists.');
                 } else {
                     Fuel\Core\Session::set_flash('error', $ex->getMessage());
                 }
             }
         } else {
             // validation failed
             Fuel\Core\Session::set_flash('registration_error', 'Registration error: Invalid user data.');
         }
     }
     $this->template->user_is_admin = $this->check_user_is_admin();
     $this->template->title = 'Register';
     $this->template->content = Fuel\Core\View::forge('user/register', array('val' => $val), false);
 }