"", "result" => "", "form" => "", ); //---------------------------- // request parameter //---------------------------- $qToken = isset($_REQUEST["q_token"]) ? $_REQUEST["q_token"] : REQ_NON; $qID = isset($_REQUEST["q_id"]) ? $_REQUEST["q_id"] : REQ_NON; $qName = isset($_REQUEST["q_name"]) ? $_REQUEST["q_name"] : REQ_NON; $qType = isset($_REQUEST["q_type"]) ? $_REQUEST["q_type"] : REQ_NON; $qPassword = isset($_REQUEST["q_password"]) ? $_REQUEST["q_password"] : REQ_NON; $qPasswordRe = isset($_REQUEST["q_password_re"]) ? $_REQUEST["q_password_re"] : REQ_NON; $qTwitter = isset($_REQUEST["q_twitter"]) ? $_REQUEST["q_twitter"] : REQ_NON; $qState = isset($_REQUEST["q_state"]) ? $_REQUEST["q_state"] : REQ_NON; $qLogin = isset($_REQUEST["q_login"]) ? $_REQUEST["q_login"] : REQ_NON; $qDispLang = isset($_REQUEST["q_disp_lang"]) ? $_REQUEST["q_disp_lang"] : REQ_NON; $qOrganizationID = isset($_REQUEST["q_organization_id"]) ? $_REQUEST["q_organization_id"] : REQ_NON; $qRegistUserNext = isset($_REQUEST["regist_user_next"]) ? $_REQUEST["regist_user_next"] : REQ_NON; //---------------------------- // judge post //---------------------------- $isPost = ($qToken !== REQ_NON); //---------------------------- // set types //---------------------------- Util::setType($qToken, "string"); Util::setType($qID, "int"); Util::setType($qName, "string"); Util::setType($qType, "int"); Util::setType($qPassword, "string"); Util::setType($qPasswordRe, "string"); Util::setType($qTwitter, "string"); Util::setType($qState, "int"); Util::setType($qLogin, "int"); Util::setType($qDispLang, "string"); Util::setType($qOrganizationID, "int"); //---------------------------- // Auth-Before validate //---------------------------- if ( $result === RES_OK ){ if ( $isPost ){ if ( ! Validate::isToken($qToken, "q_token") ){ $result = RES_NG; $gResult->push("{$WORD($wk, 1)}"); } if ( ! Validate::isNumeric($qID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 2)}"); } } else { if ( ! Validate::isNumeric($qID) ){ $qID = INIT_ID; } } } //---------------------------- // Auth //---------------------------- if ( $result === RES_OK ){ $auth = Auth::instance("user"); $authOrganization = Auth::instance("organization"); if ( ! $auth->write($qID, $qOrganizationID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 3)}"); } if ( $result === RES_OK ){ if ( ($arrUserType = $auth->write_getUserType()) === FALSE ){ $result = RES_NG; $gResult->push("{$WORD($wk, 4)}"); } else if ( ($arrOrganization = $auth->write_getOrganization()) === FALSE ){ $result = RES_NG; $gResult->push("{$WORD($wk, 5)}"); } else { $isChangeOrganization = $auth->write_isOrganization(); } } } //---------------------------- // Auth-After validate //---------------------------- if ( $result === RES_OK ){ if ( $isPost ){ $isChangePassword = ($qID === INIT_ID || Validate::isString($qPassword)); // 新規登録 or パスワード更新の場合 if ( $qID === INIT_ID ){ if ( ! Validate::isAlphabetNumber($qName) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 6)}"); } if ( ! Validate::isLength($qName, DAO::T_USER_NAME_LEN_MIN, DAO::T_USER_NAME_LEN_MAX) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 7)}"); } } if ( ! Validate::inKeyArray($qType, $arrUserType) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 8)}"); } if ( $isChangePassword ){ if ( ! Validate::isPassword($qPassword) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 9)}"); } if ( ! Validate::isLength($qPassword, DAO::T_USER_PASSWORD_LEN_MIN, DAO::T_USER_PASSWORD_LEN_MAX) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 10)}"); } if ( ! Validate::isPassword($qPasswordRe) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 11)}"); } if ( ! Validate::isLength($qPasswordRe, DAO::T_USER_PASSWORD_LEN_MIN, DAO::T_USER_PASSWORD_LEN_MAX) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 12)}"); } if ( ! Validate::isEqualStr($qPassword, $qPasswordRe) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 13)}"); } } if ( ! Validate::isNumeric($qState) ){ $qState = DAO::T_USER_STATE_ACTIVE; } if ( ! Validate::inKeyArray($qState, DAO::T_USER_STATE_TABLE()) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 14)}"); } if ( ! Validate::isNumeric($qLogin) ){ $qLogin = DAO::T_USER_LOGIN_OK; } if ( ! Validate::inKeyArray($qLogin, DAO::T_USER_LOGIN_TABLE()) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 15)}"); } if ( ! Validate::isLang($qDispLang) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 16)}"); } if ( ! Validate::inKeyArray($qOrganizationID, $arrOrganization) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 17)}"); } } } $isNew = ( $result === RES_OK && $qID === INIT_ID ); //---------------------------- // function //---------------------------- //---------------------------- // process //---------------------------- if ( $result === RES_OK ){ DAO::begin(); $objDAOUser = DAO::instance("user"); $objViewOrganization = View::instance("organization"); $objViewUser = View::instance("user"); // 更新 -------------------- if ( $isPost ){ if ( $result === RES_OK ){ // 新規でないときは、変更不可項目がある if ( ! $isNew ){ $qName = NULL; $qType = NULL; $qOrganizationID = NULL; } // パスワード if ( ! $isChangePassword ){ $qPassword = NULL; } // 組織 if ( ! $isChangeOrganization ){ $qOrganizationID = User::get("organization_id"); } $resDAOUser = $objDAOUser->register($qID, $qName, $qState, $qType, $qPassword, NULL, NULL, $qDispLang, $qLogin, $qTwitter, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $qOrganizationID); $result = $resDAOUser["result"]; if ( $result === RES_OK ){ $gResult->push($isNew ? "{$WORD($wk, 18)}" : "{$WORD($wk, 19)}"); } else { $gResult->push("{$WORD($wk, 20)}"); } } } else { if ( $result === RES_OK ){ // 新規登録 -------------------- if ( $isNew ){ $qName = $objDAOUser->getInit("t_user_name"); $qType = $objDAOUser->getInit("t_user_type"); $qTwitter = $objDAOUser->getInit("t_user_twitter"); $qDispLang = User::get("disp_lang"); $qState = $objDAOUser->getInit("t_user_state"); $qLogin = $objDAOUser->getInit("t_user_login"); } // 編集 -------------------- else { $objDAOUser->setAuth($auth); $resDAOUser = $objDAOUser->get($qID); $result = $resDAOUser["result"]; if ( $result === RES_OK ){ $dataUser = $resDAOUser["data"][0]; $qName = $dataUser["t_user_name"]; $qType = $dataUser["t_user_type"]; $qTwitter = $dataUser["t_user_twitter"]; $qDispLang = $dataUser["t_user_disp_lang"]; $qState = $dataUser["t_user_state"]; $qLogin = $dataUser["t_user_login"]; $qOrganizationID = $dataUser["t_organization_id"]; } else { $result = RES_NG; $gResult->push("{$WORD($wk, 21)}"); } } } } DAO::end($result); } //---------------------------- // html //---------------------------- { // menu ---------------------------------------------------------------- if ( $result !== RES_NG ){ $arrMenu = array(); //----- $arrMenu[0] = $objViewOrganization->tab(View_organization::TAB_LIST, $authOrganization); $arrMenu[1] = $objViewOrganization->tab(View_organization::TAB_DETAIL, $authOrganization, $qOrganizationID); $arrMenu[2] = $objViewUser->tab(View_user::TAB_LIST, $auth, $qOrganizationID); if ( $isNew ){ $arrMenu[3] = $objViewUser->tab(View_user::TAB_NEW, $auth, $qOrganizationID); } else { $arrMenu[3] = $objViewUser->tab(View_user::TAB_EDIT, $auth, $qOrganizationID); } //----- $arrHtml["menu"] = Printer::menuTab($arrMenu, 3); } // title --------------------------------------------------------------- $title = $isNew ? "{$WORD($wk, 22)}" : "{$WORD($wk, 23)}"; // form ---------------------------------------------------------------- if ( $result !== RES_NG ){ if ( $isPost ){ // アクション(OK) $arrHtml["form"] = Printer::link("OK", "btn btn-default", NULL, NULL, "./"); if ( $qRegistUserNext !== REQ_NON ){ // 「続けて登録」ボタンが押下された場合 header("Location: ./edit.html?q_organization_id=" . $qOrganizationID); } else { // 上記以外の場合 header("Location: ./"); } } else { $arrControl = array(); $arrAction = array(); // 新規のみ変更可能 if ( $isNew ){ // フォーム(組織) if ( $isChangeOrganization ){ $arrControl[] = array( "id" => "q_organization", "name" => "{$WORD($wk, 24)}", "form" => array( Printer::select("q_organization_id", "q_organization_id", $arrOrganization, $qOrganizationID), ), ); } else { $arrControl[] = array( "id" => "q_organization", "name" => "{$WORD($wk, 25)}", "form" => array( Printer::input("hidden", "q_organization_id", "q_organization_id", User::get("organization_id")), Printer::formText( User::get("organization_name") ), ), ); } // フォーム(タイプ) $arrControl[] = array( "id" => "q_type", "name" => "{$WORD($wk, 26)}", "form" => array( Printer::radio("q_type", "q_type", $arrUserType, $qType), ), ); // フォーム(名前) $arrControl[] = array( "id" => "q_name", "name" => "{$WORD($wk, 27)}", "form" => array( Printer::input("text", "q_name", "q_name", $qName, NULL, array("placeholder" => "{$WORD($wk, 28, DAO::T_USER_NAME_LEN_MIN, DAO::T_USER_NAME_LEN_MAX)}")), ), "validate" => array( "required" => TRUE, "minlength" => DAO::T_USER_NAME_LEN_MIN, "maxlength" => DAO::T_USER_NAME_LEN_MAX, "user_name" => TRUE, "remote" => array( // Ajax "type" => "post", "url" => "/app/checkNameController.php", "data" => array( "q_kind" => APP_CHECK_NAME_CONTROLLER_KIND_USER, // "q_title" は自動で入る ), ), ), "required" => TRUE, ); } else { // フォーム(組織) if ( isset($arrOrganization[$qOrganizationID]) ){ $orgName = $arrOrganization[$qOrganizationID]; } else { $orgName = ""; } $arrControl[] = array( "id" => "q_organization", "name" => "{$WORD($wk, 29)}", "form" => array( Printer::input("hidden", "q_organization_id", "q_organization_id", $qOrganizationID), Printer::formText($orgName), ), ); // フォーム(タイプ) $arrControl[] = array( "id" => "q_type", "name" => "{$WORD($wk, 30)}", "form" => array( Printer::input("hidden", "q_type", "q_type", $qType), Printer::formText(DAO::T_USER_TYPE_TABLE($qType)), ), ); // フォーム(名前) $arrControl[] = array( "id" => "q_name", "name" => "{$WORD($wk, 31)}", "form" => array( Printer::input("hidden", "q_name", "q_name", $qName), Printer::formText($qName), ), ); } // フォーム(パスワード) $arrControl[] = array( "id" => "q_password", "name" => "{$WORD($wk, 32)}", "form" => array( Printer::input("password", "q_password", "q_password", "", NULL, array("placeholder" => "{$WORD($wk, 33, DAO::T_USER_PASSWORD_LEN_MIN, DAO::T_USER_PASSWORD_LEN_MAX)}")), ), "validate" => array( "minlength" => DAO::T_USER_PASSWORD_LEN_MIN, "maxlength" => DAO::T_USER_PASSWORD_LEN_MAX, ), "required" => $isNew ? TRUE : FALSE, ); // フォーム(パスワード(確認)) $arrControl[] = array( "id" => "q_password_re", "name" => "{$WORD($wk, 34)}", "form" => array( Printer::input("password", "q_password_re", "q_password_re", "", NULL, array("placeholder" => "{$WORD($wk, 35)}")), ), "validate" => array( "minlength" => DAO::T_USER_PASSWORD_LEN_MIN, "maxlength" => DAO::T_USER_PASSWORD_LEN_MAX, "equalTo" => "#q_password", ), "required" => $isNew ? TRUE : FALSE, ); // フォーム(twitter) $arrControl[] = array( "id" => "q_twitter", "name" => "{$WORD($wk, 36)}", "form" => array( Printer::input("text", "q_twitter", "q_twitter", $qTwitter, NULL, array("placeholder" => "{$WORD($wk, 37)}")). "
{$WORD($wk, 38)}
", ), ); // フォーム(ログイン許可) if ( ! $isNew ){ $arrControl[] = array( "id" => "q_state", "name" => "{$WORD($wk, 39)}", "form" => array( Printer::radio("q_state", "q_state", DAO::T_USER_STATE_TABLE(), $qState), ), ); } // フォーム(ログイン許可) /* if ( ! $isNew ){ $arrControl[] = array( "id" => "q_login", "name" => "{$WORD($wk, 40)}", "form" => array( Printer::radio("q_login", "q_login", DAO::T_USER_LOGIN_TABLE(), $qLogin), ), ); } */ // フォーム(インターフェース言語) $arrControl[] = array( "id" => "q_disp_lang", "name" => "{$WORD($wk, 41)}", "form" => array( Printer::select("q_disp_lang", "q_disp_lang", $G_LANG_DISP_TABLE, $qDispLang), ), ); // フォーム(id) $arrControl[] = array( "id" => NULL, "name" => NULL, "form" => Printer::input("hidden", "q_id", "q_id", $qID), ); // フォーム(token) $arrControl[] = array( "id" => NULL, "name" => NULL, "form" => Printer::input("hidden", "q_token", "q_token", Util::token()), ); // アクション(OK) $arrAction[] = Printer::input("submit", NULL, NULL, "OK", "btn btn-primary"); // アクション(続けて登録) if ( $isNew ){ $arrAction[] = Printer::input("submit", NULL, "regist_user_next", "{$WORD($wk, 42)}", "btn btn-primary"); } // アクション(キャンセル) $arrAction[] = Printer::link("Cancel", "btn btn-default", NULL, NULL, "./"); $arrHtml["form"] = Printer::form("form_user", "form_user", "./edit.html", "post", $arrControl, $arrAction); } } else { // アクション(OK) $arrHtml["form"] = Printer::link("OK", "btn btn-default", NULL, NULL, "/"); } // result -------------------------------------------------------------- $arrHtml["result"] = $gResult->string(TRUE, $result); } ?>