Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 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;
 }