public function action_Edit($id = 0) { //編集するユーザの取り出し $id and $this->data['user'] = Model_Users::query()->where('id', '=', $id)->get(); //ドロップボックスの生成 $select = Model_Class::get_list(); //もしpostで送られてきたら if (Input::post()) { //バリデーション呼び出し $val = Model_Users::validate(); //バリデーションチェック if ($val->run()) { // バリデーション成功の場合ここに入ってくる //入力されたデータの更新処理 $query = DB::update('users')->set(array('username' => Input::post('username'), 'fullname' => Input::post('name'), 'password' => Auth::instance()->hash_password(Input::post('password')), 'email' => Input::post('email'), 'classID' => Input::post('class'), 'updated_at' => time()))->where('id', '=', $id)->execute(); //usermanagementに遷移 Response::redirect('usermanagement'); } else { // バリデーション失敗の場合ここに入ってくる $this->message = $val->error(); $view = View::forge('usermanagement/UserEdit', $this->data); //エラー文のセット $view->set_global('message', $this->message, false); //ドロップダウン箇所のセット $view->set_global('select', $select, false); } } else { $view = View::forge('usermanagement/UserEdit', $this->data); //エラー文のセット $view->set_global('message', $this->message, false); //ドロップダウン個所のセット $view->set_global('select', $select, false); } return $view; }
public function action_send() { $data['token_key'] = Config::get('security.csrf_token_key'); $data['token'] = Security::fetch_token(); $error = array(); if (Security::check_token()) { $val = Validation::forge(); $val->add_field('username', 'ユーザID', 'required|max_length[9]'); $val->add_field('mail', 'メールアドレス', 'required|valid_email'); if ($val->run()) { //受信データの整理 $username = Input::post('username'); $email = Input::post('mail'); //登録ユーザの有無の確認 $user_count = Model_Users::query()->where('username', $username)->where('email', $email)->count(); //該当ユーザがいれば if ($user_count > 0) { //Authのインスタンス化 $auth = Auth::instance(); //新しいパスワードの自動発行 $repass = $auth->reset_password($username); //送信データの整理 $data['fullname'] = Model_Users::query()->select('fullname')->where('username', $username)->get(); $data['repass'] = $repass; $data['email'] = $email; $data['anchor'] = 'login'; $body = View::forge('login/email/autorepass', $data); //Eメールのインスタンス化 $sendmail = Email::forge(); //メール情報の設定 $sendmail->from('*****@*****.**', ''); $sendmail->to($email, $username); $sendmail->subject('パスワードの再発行'); $sendmail->html_body($body); //メールの送信 $sendmail->send(); $view = View::forge('login/success', $data); //該当者0のとき } else { $view = View::forge('login/contact', $data); $msg = '該当者が存在しませんでした。'; $view->set('msg', $msg); } //バリデーションエラー } else { $error = $val->error(); $view = View::forge('login/contact', $data); $view->set_global('error', $error, false); } //CSRF対策 } else { $view = View::forge('login/contact', $data); $msg = 'CSRF対策です'; $view->set('msg', $msg); } return $view; }
public function action_index() { $data = array(); $message = ''; $username = Auth::get_screen_name(); $class = Auth::get('classID'); $data['posts'] = Model_Post::query()->where('username', '=', $username)->order_by('Ptime', 'desc')->get(); $data['users'] = Model_Users::query()->where('username', '=', $username)->get(); //同じクラスのユーザを取得 $data['classname'] = Model_Class::query()->where('classID', '=', $class)->get(); $data['classuser'] = Model_Users::query()->where('classID', '=', $class)->get(); $data['categorize'] = Model_Category::query()->where('df', '=', '0')->get(); $view = View::forge('mypage/mypage', $data); $view->username = $username; $view->set_global('message', $message, false); return $view; }
public function action_update($username = '******') { //バリデーション定義 $val = Validation::forge(); //ニックネームは必須で、最大文字数は50文字以内 $val->add('name', '「ニックネーム」')->add_rule('required')->add_rule('max_length', 50); //メールアドレスは必須で、入力内容がメールの形式に沿っているか $val->add('email', '「メールアドレス」')->add_rule('required')->add_rule('valid_email'); $class = Auth::get('classID'); //ログイン中の学生のレコードを取得する $user = Model_Users::find($username); //各カラムに更新情報を格納する $user->fullname = Input::post('name'); $user->email = Input::post('email'); //アップロードファイルがバリデーション通りなら投稿内容保存 if (Upload::is_valid()) { //設定を元に保存をする Upload::save(); foreach (Upload::get_files() as $file) { $user->icon = $file['saved_as']; } } if ($val->run()) { $user->save(); //更新後のレコードを取得する $this->data['users'] = Model_Users::query()->where('username', '=', $username)->get(); $this->data['classname'] = Model_Class::query()->where('classID', '=', $class)->get(); $this->action_categorise(); //ビューオブジェクトの作成 $view = View::forge('changeregistration/ChangeRegistration', $this->data); //ビューのmessage変数に更新成功時のメッセージを定義 $this->message = '登録内容を変更しました。'; //ビューに渡す変数をセットメソッドで定義する $view->set_global('message', $this->message, false); $view->set_global('error', $this->error, false); } else { //現在のレコードを取得する $this->data['users'] = Model_Users::query()->where('username', '=', $username)->get(); $this->data['classname'] = Model_Class::query()->where('classID', '=', $class)->get(); $this->action_categorise(); //バリデーションからエラーメッセージを取得する $this->error = $val->error(); //ビューオブジェクト生成 $view = View::forge('changeregistration/ChangeRegistration', $this->data); //ビューに渡す変数をセットメソッドで定義する $view->set_global('message', $this->message, false); $view->set_global('error', $this->error, false); } //ビューを返す return $view; }
public function action_delete($Pid = 0) { $post = Model_Post::query()->where('Pid', '=', $Pid)->delete(); $comment = Model_Comment::query()->where('Pid', '=', $Pid)->delete(); $username = Auth::get_screen_name(); $message = '投稿内容を削除しました。'; $this->action_categorize(); $this->data['users'] = Model_Users::query()->where('username', '=', $username)->get(); $this->data['posts'] = Model_Post::query()->where('username', '=', $username)->order_by('Ptime', 'desc')->get(); $view = View::forge('mypage/mypage', $this->data); $view->username = $username; $view->set_global('message', $message, false); $view->set_global('error', $this->error, false); return $view; }