/**
  * パスワードの変更を行います
  *
  * @author shimma
  * @access public
  * @return void
  */
 public function post_resetpassword()
 {
     $hash = Input::get('token');
     $valid_token = Model_Token::findByHash($hash);
     if (!Security::check_token() || empty($hash) || !$valid_token) {
         return \Response::redirect('errors/forbidden');
     }
     $fieldset_password = self::createFieldsetPassword();
     $validation = $fieldset_password->validation();
     Session::set_flash('reminder.password.fieldset', $fieldset_password);
     if (!$validation->run()) {
         return \Response::redirect('/reminder/change?token=' . $hash);
     }
     try {
         $user = Model_User::find($valid_token->user_id);
         $user->setPassword($fieldset_password->input('password'));
         $user->save();
         $valid_token->delete();
         return \Response::redirect('reminder/thanks');
     } catch (Exception $e) {
         return \Response::redirect('errors/forbidden');
     }
 }
 /**
  * Emailアドレス認証
  * 発行されたトークンを認証し、会員DBのユーザステータスを仮登録から認証済みに変更します
  *
  * @todo 検討: 夫々の処理でエラーが発生した際にどのようにユーザ側に見える表示するのか
  * @todo エラーのリダイレクト先を共通コントローラ完成後修正
  * @author shimma
  * @access public
  * @return void
  */
 public function get_activate()
 {
     $hash = Input::get('token');
     if (empty($hash)) {
         return \Response::redirect('/');
     }
     try {
         $valid_token = Model_Token::findByHash($hash);
         $user = Model_User::find($valid_token->user_id);
         $user->activate();
         $valid_token->delete();
         $email_template_params = array('nick_name' => $user->nick_name);
         $user->sendmail('signup/activate', $email_template_params);
     } catch (Exception $e) {
         throw $e;
     }
     \Auth::force_login($user->user_id);
     return \Response::redirect('signup/thanks');
 }