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'); }
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); }