Example #1
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     // 共通処理クラスを呼び出し
     $common = new \RisolutoApps\Admin\AdminCommon();
     $detail = $common->loginCheck($sess, true);
     $groups = $common->getGroupList('id_and_name');
     $param = $this->getParam();
     if (is_numeric($param[0])) {
         // 引数値がセットされていれば、それを元に登録情報を呼び出す
         $target = \Risoluto\Auth::callProviderMethod('showUserByNo', ['no' => $param[0]]);
         if (empty($target)) {
             // 情報が取得できなかった場合も例外をThrow
             throw new \Exception('Cannot load user data');
         }
     } else {
         // 指定されていなければ例外をThrowする
         throw new \Exception('Require args not found');
     }
     // 情報が取得できたら整形してセッションに保存する
     $getVals['entered'] = ['no' => $target[0]['no'], 'userid' => $target[0]['userid'], 'username' => $target[0]['username'], 'password' => '', 'password_confirm' => '', 'groupno' => $target[0]['groupno'], 'status' => $target[0]['status']];
     $sess->store('form', $getVals);
     // ヘッダ情報のセット
     $header = $this->getDefaultHeader();
     $header = $this->replaceHeader($header, 'robots', 'NOINDEX,NOFOLLOW');
     // テンプレートエンジン関連の処理
     $assign_value = ['header' => $header, 'detail' => $detail, 'groups' => $groups, 'entered' => $getVals, 'csrf_token' => $sess->load('csrf_token')];
     $this->risolutoView($assign_value);
 }
Example #2
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  * @throws    \Exception 必須な情報が渡されていないか情報が取得できない場合はThrow
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     // 共通処理クラスを呼び出し
     $common = new \RisolutoApps\Admin\AdminCommon();
     /** @noinspection PhpUnusedLocalVariableInspection */
     $detail = $common->loginCheck($sess, true);
     $param = $this->getParam();
     if (is_numeric($param[0])) {
         // 引数値がセットされていれば、それを元に登録情報を呼び出す
         $target = \Risoluto\Auth::callProviderMethod('showGroupByNo', ['no' => $param[0]]);
         if (empty($target)) {
             // 情報が取得できなかった場合も例外をThrow
             throw new \Exception('Cannot load group data');
         }
     } else {
         // 指定されていなければ例外をThrowする
         throw new \Exception('Require args not found');
     }
     // 情報が取得できたら整形してセッションに保存、入力画面へ遷移する
     $getVals['entered'] = ['no' => $target[0]['no'], 'groupid' => $target[0]['groupid'], 'groupname' => $target[0]['groupname'], 'status' => $target[0]['status']];
     $sess->store('form', $getVals);
     \Risoluto\Url::redirectTo('Admin_GroupMng_ModEntry');
     exit;
 }
Example #3
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     // 共通処理クラスを呼び出し
     $common = new \RisolutoApps\Admin\AdminCommon();
     $detail = $common->loginCheck($sess, false);
     $entered = $common->checkEnteredSelfData($_POST, $sess->load('csrf_token'), $detail['no']);
     // エラー情報があった場合は入力画面に戻る
     if (!empty($entered['error']['msg']) or !empty($entered['error']['form_crit'])) {
         // 入力情報はセッションに保存
         $sess->store('form', $entered);
         \Risoluto\Url::redirectTo('Admin_SelfEntry');
         exit;
     }
     // DBへの登録を行う
     $options = ['by_who' => $detail['no'] . ':' . $detail['userid'], 'no' => $detail['no'], 'userid' => $detail['userid'], 'username' => $detail['username'], 'password' => $entered['entered']['password'], 'groupno' => $detail['groupno'], 'status' => $detail['status']];
     $result = \Risoluto\Auth::callProviderMethod('modUserByNo', $options);
     // ヘッダ情報のセット
     $header = $this->getDefaultHeader();
     $header = $this->replaceHeader($header, 'robots', 'NOINDEX,NOFOLLOW');
     // テンプレートエンジン関連の処理
     $assign_value = ['header' => $header, 'detail' => $detail, 'result' => $result];
     $this->risolutoView($assign_value);
 }
Example #4
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     // 共通処理クラスを呼び出し、必要な情報の取得等を行う
     $common = new \RisolutoApps\Admin\AdminCommon();
     $detail = $common->loginCheck($sess, true);
     // ヘッダ情報のセット
     $header = $this->getDefaultHeader();
     $header = $this->replaceHeader($header, 'robots', 'NOINDEX,NOFOLLOW');
     // テンプレートエンジン関連の処理
     $assign_value = ['header' => $header, 'detail' => $detail, 'list' => \Risoluto\Auth::callProviderMethod('showGroupAll')];
     $this->risolutoView($assign_value);
 }
Example #5
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     if ($sess->isThere('Auth')) {
         // 認証情報がある場合は、メニュー画面へ遷移する
         \Risoluto\Url::redirectTo('Admin_Menu');
         exit;
     } elseif (isset($_POST['userid']) and isset($_POST['password'])) {
         // 入力値を処理
         $option = ['userid' => htmlentities($_POST['userid'], ENT_QUOTES, 'UTF-8'), 'password' => htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8')];
         // POSTでユーザIDとパスワードが渡ってきた場合は認証処理を行う
         $auth_result = \Risoluto\Auth::callProviderMethod('doAuth', $option);
         if ($auth_result) {
             // 認証に成功した場合は詳細情報を取得
             $detail = \Risoluto\Auth::callProviderMethod('showUser', $option);
             $detail[0]['password'] = '******';
             $group = \Risoluto\Auth::callProviderMethod('showGroupByNo', ['no' => $detail[0]['groupno']]);
             $detail[0]['group'] = $group[0];
             // 認証情報をセッションに追加してメニュー画面へ遷移する
             $sess->store('Auth', $detail[0]);
             $sess->store('csrf_token', $sess->genRand());
             \Risoluto\Url::redirectTo('Admin_Menu');
             exit;
         } else {
             // 認証に失敗した場合はエラー情報をセッションに追加してログイン画面に戻る
             $sess->store('AuthError', 'auth_failure');
             \Risoluto\Url::redirectTo('Admin_Login');
             exit;
         }
     } else {
         // それ以外の時はエラー情報をセッションに追加してログイン画面に戻る
         $sess->store('AuthError', 'invalid_access');
         \Risoluto\Url::redirectTo('Admin_Login');
         exit;
     }
 }
Example #6
0
 /**
  * play()
  *
  * 主処理を行う
  *
  * @access    public
  *
  * @param     void
  *
  * @return    void    なし
  */
 public function play()
 {
     // セッションをスタート
     $sess = new \Risoluto\Session();
     $sess->start();
     // 共通処理クラスを呼び出し
     $common = new \RisolutoApps\Admin\AdminCommon();
     $detail = $common->loginCheck($sess, true);
     // セッションにフォーム入力情報が存在した場合は取得
     $entered = [];
     if ($sess->isThere('form')) {
         $entered = $sess->load('form');
         $sess->revoke('form');
     }
     // DBへの登録を行う
     $options = ['by_who' => $detail['no'] . ':' . $detail['userid'], 'no' => $entered['entered']['no'], 'groupid' => $entered['entered']['groupid'], 'groupname' => $entered['entered']['groupname'], 'status' => $entered['entered']['status']];
     $result = \Risoluto\Auth::callProviderMethod('modGroupByNo', $options);
     // ヘッダ情報のセット
     $header = $this->getDefaultHeader();
     $header = $this->replaceHeader($header, 'robots', 'NOINDEX,NOFOLLOW');
     // テンプレートエンジン関連の処理
     $assign_value = ['header' => $header, 'detail' => $detail, 'result' => $result];
     $this->risolutoView($assign_value);
 }
Example #7
0
 /**
  * checkEnteredSelfData($target, $csrf_token)
  *
  * 入力内容のチェック処理を行う
  *
  * @access    public
  *
  * @param     array   $target チェック対象となるデータが格納された配列
  * @param     string  $csrf_token CSRF対策のためのトークン
  * @param     integer $no ユーザ識別用のNo
  *
  * @return    array      チェック結果
  * @throws    \Exception CSRFトークンが一致しなかった場合はThrow
  */
 public function checkEnteredSelfData($target, $csrf_token, $no)
 {
     // 戻り値を初期化
     $retval = [];
     $retval['entered'] = [];
     $retval['error']['msg'] = [];
     $retval['error']['form_crit'] = [];
     //--- 現在のパスワードのチェック
     $retval['entered']['current_password'] = htmlentities($target['current_password'], ENT_QUOTES, 'UTF-8');
     $current_pw_db = \Risoluto\Auth::callProviderMethod('showUserByNo', ['no' => $no]);
     if (isset($target['current_password']) and !empty($target['current_password'])) {
         // フォーマットチェック
         if (!password_verify($target['current_password'], $current_pw_db[0]['password'])) {
             // フォーマットにそぐわない場合はエラーにする
             $retval['error']['msg'][] = 'invalid_current_password';
             $retval['error']['form_crit'][] = 'current_password';
         }
     } else {
         // 未入力の場合はエラーにする
         $retval['entered']['current_password'] = '';
         $retval['error']['msg'][] = 'empty_current_password';
         $retval['error']['form_crit'][] = 'current_password';
     }
     //--- 変更後のパスワードのチェック
     $retval['entered']['password'] = htmlentities($target['password'], ENT_QUOTES, 'UTF-8');
     $retval['entered']['password_confirm'] = $retval['entered']['password'];
     if (isset($target['password']) and !empty($target['password'])) {
         // フォーマットチェック
         if ($target['password'] != $target['password_confirm']) {
             // フォーマットにそぐわない場合はエラーにする
             $retval['error']['msg'][] = 'invalid_password';
             $retval['error']['form_crit'][] = 'password';
         }
     } else {
         // 未入力の場合はエラーにする
         $retval['entered']['password'] = '';
         $retval['entered']['password_confirm'] = '';
         $retval['error']['msg'][] = 'empty_password';
         $retval['error']['form_crit'][] = 'password';
     }
     //--- CSRFトークンのチェック
     if ($target['csrf_token'] != $csrf_token) {
         throw new \Exception('CSRF Check Error');
     }
     // エラー関係の配列から重複を排除する
     $retval['error']['msg'] = array_unique($retval['error']['msg']);
     $retval['error']['form_crit'] = array_unique($retval['error']['form_crit']);
     // 処理結果を返却する
     return $retval;
 }
Example #8
0
 /**
  * showGroupAll()
  *
  * グループ情報をすべて表示する
  *
  * @access    private
  *
  * @param     void
  *
  * @return    void    なし
  */
 private function showGroupAll()
 {
     // 表示処理を呼び出す
     print_r(\Risoluto\Auth::callProviderMethod('showGroupAll'));
 }