/** * Edit My Account * * @return void * @author Merrick Christensen */ public function action_edit() { $this->template->content = View::factory('account/edit'); $this->template->content->user = $this->user; $this->template->scripts = array('public/js/vendor/word-count.js', 'public/js/account/vanity_preview.js'); $this->template->content->set(array('tv_shows' => Helper_Favorite::get_available_answers(1), 'musical_artists' => Helper_Favorite::get_available_answers(2), 'movies' => Helper_Favorite::get_available_answers(3), 'foods' => Helper_Favorite::get_available_answers(4), 'colors' => Helper_Favorite::get_available_answers(5), 'animals' => Helper_Favorite::get_available_answers(6), 'sports' => Helper_Favorite::get_available_answers(7), 'video_games' => Helper_Favorite::get_available_answers(8), 'school_subjects' => Helper_Favorite::get_available_answers(9), 'seasons' => Helper_Favorite::get_available_answers(10), 'app' => Helper_Favorite::get_available_answers(11), 'book' => Helper_Favorite::get_available_answers(12))); $this->template->sidebar = Widget::factory()->add(Helper_Default::sidebar()); if ($_POST) { $original_post = $_POST; $user = $this->user; $post = $user->validate_create_edit($_POST); if ($post->check()) { /* If the user wants to change the display name */ if ($user->display_name != $post['display_name']) { /* Set new display name if it isn't in use already */ if (Helper_Account::display_name_exists($post['display_name'])) { Message::set(MESSAGE::ERROR, array('Display name already in use!', 'The display name you entered (' . $post['display_name'] . ') is already in use, please choose another one. Reverting to your previous display name (' . $user->display_name . ').')); } else { //$user->display_name = $post['display_name']; //as of 3.0 user may no longer update their display name. } } $user->gender = $post['gender']; $user->vanity_url = $post['vanity_url']; $user->newsletter = $post['newsletter']; $user->save(); $this->add_favorites($original_post); Message::set(Message::SUCCESS, 'Successfully edited!'); Request::instance()->redirect('profile'); } else { Message::set(Message::ERROR, $post->errors('user')); } } }
/** * Edit a user * * @return void * @author Will Robertson */ public function action_edit($user_id = null) { $user = ORM::factory('user')->where('id', '=', $user_id)->find(); /* Load the view. */ $this->template->styles = array('public/js/vendor/datepicker/jquery-ui-1.8.5.custom.css' => 'screen'); $this->template->scripts = array('public/js/vendor/jquery-ui-1.8.5.custom.min.js', 'public/js/vendor/word-count.js', 'public/js/account/vanity_preview.js'); $content = $this->template->content = View::factory('admin/users/edit'); $this->template->sidebar = Widget::factory()->add(Helper_Default::admin_sidebar()); if ($user->loaded()) { $this->template->content->set(array('user' => $user)); } else { Message::set(Message::NOTICE, "This user does not exist."); Request::instance()->redirect('admin/users'); } if ($_POST) { /* Do they want to make this user an admin? */ $set_admin_user = Arr::get($_POST, 'admin_user'); /* Do they want to make this user a NG Staff member? */ $set_ngstaff_user = Arr::get($_POST, 'ngstaff_user'); /* Load the validation rules, filters etc.*/ $post = $user->validate_update($_POST); /* If the post data validates using the rules setup in the user model. */ if ($post->check()) { $admin_role = new Model_Role(array('name' => 'admin')); $ngstaff_role = new Model_Role(array('name' => 'ngstaff')); if ($set_admin_user) { if (!Helper_Account::is_admin($user)) { $user->add('roles', $admin_role); } } else { $user->remove('roles', $admin_role); } if ($set_ngstaff_user) { if (!Helper_Account::is_ngstaff($user)) { $user->add('roles', $ngstaff_role); } } else { $user->remove('roles', $ngstaff_role); } /* Affects the sanitized vars to the user object. */ $user->email = $post['email']; $user->username = $post['username']; /* If the user wants to change the display name */ if ($user->display_name != $post['display_name']) { /* Set new display name if it isn't in use already */ if (Helper_Account::display_name_exists($post['display_name'])) { echo 'problem'; Message::set(MESSAGE::ERROR, array('Display name already in use!', 'The display name you entered (' . $post['display_name'] . ') is already in use, please choose another one. Reverting to your previous display name (' . $user->display_name . ').')); } else { $user->display_name = $post['display_name']; } } $user->birthdate = $post['birthdate']; $user->gender = $post['gender']; $user->vanity_url = $post['vanity_url']; /* Create the account. */ $user->save(); /* Redirect to users edit page. */ Request::instance()->redirect('admin/users'); } else { /* Get errors for display in view. */ Message::set(Message::ERROR, $post->errors("user")); } } }