コード例 #1
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値(autoregist_use_items)     
  * @param   string  $errStr     エラー文字列(未使用:エラーメッセージ固定)
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     // container取得
     $container =& DIContainerFactory::getContainer();
     $usersView =& $container->getComponent("usersView");
     $use_items = $attributes;
     if (!isset($use_items)) {
         return _INVALID_INPUT;
     }
     // eメールと携帯メール
     $where = array("({items}.type = 'email' OR {items}.type = 'mobile_email')" => null);
     $items =& $usersView->getItems($where, null, null, null, array($this, "_getItemsFetchcallback"));
     foreach ($use_items as $use_item) {
         // 不正入力チェック
         if (!$use_item) {
             continue;
         }
         $list = explode(":", $use_item);
         if (count($list) != 2) {
             continue;
         }
         // eメールか携帯メールが必須(value = _ON)になっているか?
         list($id, $value) = $list;
         if (array_key_exists($id, $items)) {
             if ($value == SYSTEM_AUTOREGIST_DEFAULT_MUST_ITEM || $value == SYSTEM_AUTOREGIST_CHECKED_ITEM) {
                 return;
             }
         }
     }
     return $errStr;
 }
コード例 #2
0
 /**
  * プライベートメッセージチェックバリデータクラス
  *   Filterとして行うべきだが、実装していないためValidatorとして実装
  *
  * @param   mixed   $attributes チェックする値(配列の場合あり)
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     (使用しない)
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent('Session');
     $user_id = $session->getParameter('_user_id');
     if (empty($user_id)) {
         return;
     }
     $modulesView =& $container->getComponent('modulesView');
     $pm_module = $modulesView->getModuleByDirname('pm');
     if (!isset($pm_module['module_id'])) {
         return;
     }
     if ($session->getParameter('_user_auth_id') < _AUTH_GENERAL) {
         return;
     }
     $authoritiesView =& $container->getComponent('authoritiesView');
     $_role_auth_id = $session->getParameter('_role_auth_id');
     $where_params = array('{modules}.module_id' => $pm_module['module_id']);
     $authorities = $authoritiesView->getAuthoritiesModulesLinkByAuthorityId($_role_auth_id, $where_params);
     if ($authorities === false || !isset($authorities[0]) || $authorities[0]['authority_id'] === null) {
         return;
     }
     $renderer =& SmartyTemplate::getInstance();
     $renderer->assign('_pm_use_flag', _ON);
     $commonMain =& $container->getComponent('commonMain');
     $request =& $container->getComponent('Request');
     require_once WEBAPP_DIR . '/modules/pm/config/define.inc.php';
     $pmView =& $commonMain->registerClass(WEBAPP_DIR . '/modules/pm/components/View.class.php', 'Pm_Components_View', 'pmView');
     $request->setParameter('filter', PM_FILTER_UNREAD);
     $new_message_count = $pmView->getMessageCount();
     $request->setParameter('filter', '');
     $renderer->assign('_pm_new_message_count', $new_message_count);
     return;
 }
コード例 #3
0
 /**
  * validate処理
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $session =& $container->getComponent("Session");
     $authID = $session->getParameter("_auth_id");
     $userID = $session->getParameter("_user_id");
     $assignmentView =& $container->getComponent("assignmentView");
     $prefix_id_name = $request->getParameter("prefix_id_name");
     if ($prefix_id_name == ASSIGNMENT_REFERENCE_PREFIX_NAME . $attributes["assignment_id"] || $prefix_id_name == ASSIGNMENT_SUMMARY_PREFIX_NAME . $attributes["assignment_id"] || $prefix_id_name == ASSIGNMENT_SUBMITTER_PREFIX_NAME . $attributes["assignment_id"] || $prefix_id_name == ASSIGNMENT_SUBMITTERS_PREFIX_NAME . $attributes["assignment_id"]) {
         $request->setParameter("reference", _ON);
     } else {
         $request->setParameter("reference", _OFF);
     }
     $submit_user_id = $assignmentView->getSubmitterID($attributes["submit_id"]);
     if ($submit_user_id === false) {
         return $errStr;
     }
     if (!empty($submit_user_id)) {
         $request->setParameter("submit_user_id", $submit_user_id);
     }
     if (empty($submit_user_id) || $submit_user_id == $userID) {
         return;
     }
     if (!$assignmentView->hasSubmitterView($submit_user_id)) {
         return $errStr;
     }
     return;
 }
コード例 #4
0
 /**
  * Injectionを行う
  *
  * @access  public
  * @since   3.0.0
  */
 function execute()
 {
     $log =& LogFactory::getLog();
     $log->trace("Filter_InjectSessionの前処理が実行されました", "Filter_InjectSession#execute");
     //
     // 設定ファイルに入っていた値を元に設定
     //
     $container =& DIContainerFactory::getContainer();
     if ($this->getSize() > 0) {
         $session =& $container->getComponent("Session");
         $params = $session->getParameters();
         if (count($params) > 0) {
             foreach ($this->getAttributes() as $key => $value) {
                 $component =& $container->getComponent($key);
                 if (is_object($component)) {
                     BeanUtils::setAttributes($component, $params, true);
                 } else {
                     $log->error("不正なコンポーネントが設定ファイルで指定されています({$key})", "Filter_InjectSession#execute");
                 }
             }
         }
     }
     $filterChain =& $container->getComponent("FilterChain");
     $filterChain->execute();
     $log->trace("Filter_InjectSessionの後処理が実行されました", "Filter_InjectSession#execute");
 }
コード例 #5
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $role_authority_id = intval($attributes);
     if ($role_authority_id == 0) {
         return;
     }
     // 会員データ取得
     $usersView =& $container->getComponent("usersView");
     $where_params = array("{users}.active_flag IN (" . _USER_ACTIVE_FLAG_OFF . "," . _USER_ACTIVE_FLAG_ON . "," . _USER_ACTIVE_FLAG_PENDING . "," . _USER_ACTIVE_FLAG_MAILED . ")" => null, "{users}.system_flag IN (" . _ON . "," . _OFF . ")" => null, "{users}.role_authority_id" => $role_authority_id);
     $users =& $usersView->getUsers($where_params);
     if ($users === false || isset($users[0])) {
         return $errStr;
     }
     $authoritiesView =& $container->getComponent("authoritiesView");
     $auth =& $authoritiesView->getAuthorityById($role_authority_id);
     if ($auth['user_authority_id'] == _AUTH_MODERATE) {
         // モデレータならば
         // pages_users_linkテーブルで
         // role_auth_idが使用されていないこともチェック
         $pagesView =& $container->getComponent("pagesView");
         $pages_users_link =& $pagesView->getPageUsersLink(array("role_authority_id" => $role_authority_id));
         if ($pages_users_link === false || isset($pages_users_link[0])) {
             return $errStr;
         }
     }
     return;
 }
コード例 #6
0
 /**
  * メッセージデータバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $receiver_id = null;
     $message_id = null;
     if (isset($attributes["receiver_id"])) {
         $receiver_id = $attributes["receiver_id"];
     }
     if (isset($attributes["message_id"])) {
         $message_id = $attributes["message_id"];
     }
     if ($message_id != null) {
         $container =& DIContainerFactory::getContainer();
         $pmView =& $container->getComponent("pmView");
         $receiver_id = $pmView->getMessageReceiverId($message_id);
         if ($receiver_id == false) {
             return;
         }
     }
     if ($receiver_id == null) {
         return;
     }
     if (!is_array($receiver_id)) {
         $receivers = explode(" ", $receiver_id);
     } else {
         $receivers = $receiver_id;
     }
     $container =& DIContainerFactory::getContainer();
     $pmView =& $container->getComponent("pmView");
     foreach ($receivers as $receiver) {
         if (!$pmView->checkMessageExist($receiver)) {
             return $errStr;
         }
     }
     return;
 }
コード例 #7
0
 /**
  * 表示方法チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $db =& $container->getComponent("DbObject");
     $sql = "SELECT user_flag, member_flag, total_member_flag " . "FROM {online} " . "WHERE block_id = ?";
     $blocks = $db->execute($sql, $attributes["block_id"], 1, null, false);
     if ($blocks === false) {
         $db->addError();
         return $errStr;
     }
     $request =& $container->getComponent("Request");
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if ($actionName == "online_action_edit_style") {
         $exists = !empty($blocks);
         $request->setParameter("exists", $exists);
         return;
     }
     if (!empty($blocks)) {
         $request->setParameter("user_flag", $blocks[0][0]);
         $request->setParameter("member_flag", $blocks[0][1]);
         $request->setParameter("total_member_flag", $blocks[0][2]);
     } else {
         $request->setParameter("user_flag", 1);
         $request->setParameter("member_flag", 1);
         $request->setParameter("total_member_flag", 1);
     }
     return;
 }
コード例 #8
0
 /**
  * リンク必須項目チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $filterChain =& $container->getComponent("FilterChain");
     $smartyAssign =& $filterChain->getFilterByName("SmartyAssign");
     if (empty($attributes["automatic_check"]) && isset($attributes["title"]) && empty($attributes["title"])) {
         $errors[] = sprintf($errStr, $smartyAssign->getLang("linklist_title"));
     }
     if (isset($attributes["url"]) && (empty($attributes["url"]) || $attributes["url"] == LINKLIST_DEFAULT_TITLE)) {
         $errors[] = sprintf($errStr, $smartyAssign->getLang("linklist_url"));
     }
     if (!empty($errors)) {
         $errStr = implode("<br />", $errors);
         return $errStr;
     }
     if (!isset($attributes["url"])) {
         return;
     }
     //許可するプロトコルを読み込み
     $db =& $container->getComponent("DbObject");
     $sql = "SELECT protocol FROM {textarea_protocol}";
     $protocolArr = $db->execute($sql);
     if ($protocolArr === false) {
         return _INVALID_INPUT;
     }
     if (preg_match("/^\\.\\//", $attributes["url"]) || preg_match("/^\\.\\.\\//", $attributes["url"])) {
         return;
     }
     foreach ($protocolArr as $i => $protocol) {
         if (preg_match("/^" . $protocol["protocol"] . "/", $attributes["url"])) {
             return;
         }
     }
     return _INVALID_INPUT;
 }
コード例 #9
0
 /**
  * セッション処理を行う
  *
  * @access  public
  * @since   3.0.0
  */
 function execute()
 {
     $log =& LogFactory::getLog();
     $log->trace("Filter_Sessionの前処理が実行されました", "Filter_Session#execute");
     $container =& DIContainerFactory::getContainer();
     $session =& new Session();
     $container->register($session, "Session");
     $attributes = $this->getAttributes();
     $modeArray = array();
     if (isset($attributes["mode"])) {
         $modeArray = explode(",", $attributes["mode"]);
         foreach ($modeArray as $key => $value) {
             $modeArray[$key] = trim($value);
         }
     } else {
         $modeArray[] = "start";
     }
     if (isset($attributes["name"])) {
         $session->setName($attributes["name"]);
     }
     if (isset($attributes["id"])) {
         $session->setID($attributes["id"]);
     }
     if (isset($attributes["savePath"])) {
         $session->setSavePath($attributes["savePath"]);
     }
     if (isset($attributes["subsavePath"]) && !is_writable($session->getSavePath())) {
         $session->setSavePath($attributes["subsavePath"]);
     }
     if (isset($attributes["cacheLimiter"])) {
         $session->setCacheLimiter($attributes["cacheLimiter"]);
     }
     if (isset($attributes["cacheExpire"])) {
         $session->setCacheExpire($attributes["cacheExpire"]);
     }
     if (isset($attributes["useCookies"])) {
         $session->setUseCookies($attributes["useCookies"]);
     }
     if (isset($attributes["lifetime"])) {
         $session->setCookieLifetime($attributes["lifetime"]);
     }
     if (isset($attributes["path"])) {
         $session->setCookiePath($attributes["path"]);
     }
     if (isset($attributes["domain"])) {
         $session->setCookieDomain($attributes["domain"]);
     }
     if (isset($attributes["secure"])) {
         $session->setCookieSecure($attributes["secure"]);
     }
     if (in_array('start', $modeArray)) {
         $session->start();
     }
     $filterChain =& $container->getComponent("FilterChain");
     $filterChain->execute();
     if (in_array('close', $modeArray)) {
         $session->close();
     }
     $log->trace("Filter_Sessionの後処理が実行されました", "Filter_Session#execute");
 }
コード例 #10
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $session =& $container->getComponent("Session");
     $pagesView =& $container->getComponent("pagesView");
     $room_id_arr = $request->getParameter("room_id_arr");
     $_user_auth_id = $session->getParameter("_user_auth_id");
     if ($_user_auth_id == _AUTH_ADMIN) {
         $room_id_arr[] = CALENDAR_ALL_MEMBERS_ID;
     }
     $add_authority_arr = array_keys($attributes["add_authority"]);
     $diff_arr = array_diff($add_authority_arr, $room_id_arr);
     if (count($diff_arr) > 0) {
         return $errStr;
     }
     foreach ($room_id_arr as $i => $room_id) {
         if (isset($attributes["add_authority"][$room_id])) {
             $add_authority = $attributes["add_authority"][$room_id];
         } else {
             if ($room_id == CALENDAR_ALL_MEMBERS_ID) {
                 $add_authority = _AUTH_ADMIN;
             } else {
                 $add_authority = _AUTH_CHIEF;
             }
         }
         $attributes["add_authority"][$room_id] = $add_authority;
     }
     $request->setParameter("add_authority", $attributes["add_authority"]);
 }
コード例 #11
0
 /**
  * 正解チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     if ($attributes["quiz"]["status"] != QUIZ_STATUS_INACTIVE_VALUE) {
         return;
     }
     if ($attributes["question_type"] == QUIZ_QUESTION_TYPE_TEXTAREA_VALUE) {
         return;
     }
     ksort($attributes["choice_id"]);
     $correctChecks = array();
     foreach (array_keys($attributes["choice_id"]) as $choiceIteration) {
         if ($attributes["question_type"] == QUIZ_QUESTION_TYPE_RADIO_VALUE && $attributes["correct_radio"] == $choiceIteration || $attributes["question_type"] == QUIZ_QUESTION_TYPE_CHECKBOX_VALUE && !empty($attributes["correct"][$choiceIteration]) || $attributes["question_type"] == QUIZ_QUESTION_TYPE_WORD_VALUE) {
             $correctChecks[] = _ON;
         } else {
             $correctChecks[] = _OFF;
         }
     }
     if ($attributes["require_flag"] && !in_array(_ON, $correctChecks)) {
         return $errStr;
     }
     $correct = implode("|", $correctChecks);
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $request->setParameter("correct", $correct);
     return;
 }
コード例 #12
0
 /**
  * command line parameters to dto
  *
  * @access  public
  */
 function execute()
 {
     $className = get_class($this);
     $container =& DIContainerFactory::getContainer();
     $actionChain =& $container->getComponent("ActionChain");
     $this->_errorList =& $actionChain->getCurErrorList();
     $log =& LogFactory::getLog();
     $log->trace("{$className}の前処理が実行されました", "{$className}#execute");
     $req =& $container->getComponent('Request');
     $cmdArgs = $req->getParameter('args');
     $dto =& $this->_createDto($this->getAttributes(), is_array($cmdArgs) ? $cmdArgs : array());
     if (is_object($dto)) {
         $container->register($dto, $this->componentKey);
         //余ったパラメータをargsに上書き
         $req->setParameter('args', $dto->args);
     } elseif ($this->registerDummy) {
         $dummy = new stdClass();
         $req->setParameterRef($this->componentKey, $dummy);
         $container->register($dummy, $this->componentKey);
     }
     //
     // ここで一旦次のフィルターに制御を移す
     //
     $filterChain =& $container->getComponent("FilterChain");
     $filterChain->execute();
     //
     // ここに後処理を記述
     //
     $log->trace("{$className}の後処理が実行されました", "{$className}#execute");
 }
コード例 #13
0
 /**
  * 汎用データベース存在チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if (empty($attributes["multidatabase_id"]) && ($actionName == "multidatabase_view_edit_create" || $actionName == "multidatabase_action_edit_create")) {
         return;
     }
     $mdbView =& $container->getComponent("mdbView");
     $request =& $container->getComponent("Request");
     if (empty($attributes["multidatabase_id"])) {
         $attributes['multidatabase_id'] = $mdbView->getCurrentMdbId();
         $request->setParameter("multidatabase_id", $attributes['multidatabase_id']);
     }
     if (empty($attributes['multidatabase_id'])) {
         return $errStr;
     }
     if (empty($attributes["block_id"])) {
         $block = $mdbView->getBlock();
         if ($attributes["room_id"] != $block["room_id"]) {
             return $errStr;
         }
         $attributes["block_id"] = $block["block_id"];
         $request->setParameter("block_id", $attributes["block_id"]);
     }
     if (!$mdbView->mdbExists()) {
         return $errStr;
     }
     return;
 }
コード例 #14
0
 function execute()
 {
     //出力用バッファをクリア(消去)し、出力のバッファリングをオフ
     //ob_end_clean();
     //リクエストの内容をすべて取得し指定URLを求める
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $parameters = $request->getParameters();
     $url = "";
     $url_parameters = "";
     $url_parameters_sub = "";
     foreach ($parameters as $key => $parameter) {
         if ($key == "_redirect_url") {
             $url = $parameter;
         } else {
             if ($key == "_sub_action") {
                 $url_parameters .= "?" . ACTION_KEY . "=" . $parameter;
             } else {
                 if ($key != ACTION_KEY) {
                     $url_parameters_sub .= "&amp;" . $key . "=" . $parameter;
                 }
             }
         }
     }
     $url_parameters .= $url_parameters_sub;
     //
     // 他サイトから取得する場合の文字列作成
     //
     $encryption =& $container->getComponent("encryptionView");
     $url_parameters .= $encryption->getRedirectUrl();
     $res = $this->request->getResponseHtml($url . $url_parameters);
     print $res;
     return;
 }
コード例 #15
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値		user_id
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent("Session");
     $configView =& $container->getComponent("configView");
     //
     // 自分(Self)
     //
     $user_id = $session->getParameter("_user_id");
     if ($user_id == "0") {
         return $errStr;
     }
     $user_auth_id = $session->getParameter("_user_auth_id");
     //
     // 編集先
     //
     $edit_user_id = $attributes;
     if ($edit_user_id == "0") {
         $edit_user_id = $session->getParameter("_user_id");
     }
     //
     // 退会機能
     //
     $withdraw_membership_use = $configView->getConfigByConfname(_SYS_CONF_MODID, "withdraw_membership_use");
     if ($withdraw_membership_use === false) {
         return $errStr;
     }
     if ($user_id != $edit_user_id || $user_auth_id == _AUTH_ADMIN || $withdraw_membership_use['conf_value'] == _OFF) {
         // 自分自身以外、管理者は退会できない
         return $errStr;
     }
     return;
 }
コード例 #16
0
 /**
  * ログイン/権限チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr	 エラー文字列
  * @param   array   $params	 オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent('Session');
     $user_auth_id = $session->getParameter('_user_auth_id');
     $authoritiesView =& $container->getComponent('authoritiesView');
     $where_params = array('{modules}.module_id' => $attributes['module_id']);
     $authorities = $authoritiesView->getAuthoritiesModulesLinkByAuthorityId($session->getParameter('_role_auth_id'), $where_params);
     if ($user_auth_id > _AUTH_GUEST && isset($authorities[0]['authority_id'])) {
         return;
     }
     if ($user_auth_id > _AUTH_OTHER) {
         $errStr = _INVALID_AUTH;
     }
     $request =& $container->getComponent('Request');
     $active_center = $request->getParameter('active_center');
     if (isset($active_center)) {
         $parameters =& $request->getParameters();
         $redirect_url = "?_sub_action=" . DEFAULT_ACTION;
         foreach ($parameters as $key => $parameter) {
             if ($key != "page_id" && $key != "block_id" && $key != "room_id" && $key != "action" && !is_array($parameter) && !preg_match("/^_/", $key)) {
                 $redirect_url .= "@" . $key . "=" . urlencode($parameter);
             }
         }
         $url = BASE_URL . INDEX_FILE_NAME . "?action=login_view_main_init&error_mes=" . _ON . "&_redirect_url=" . $redirect_url;
         $commonMain =& $container->getComponent('commonMain');
         $commonMain->redirectHeader($url, 2, $errStr);
         exit;
     } else {
         return $errStr;
     }
 }
コード例 #17
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  *                  
  * @param   string  $errStr     エラー文字列(未使用:エラーメッセージ固定)
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     // container取得
     $container =& DIContainerFactory::getContainer();
     $filterChain =& $container->getComponent("FilterChain");
     $smartyAssign =& $filterChain->getFilterByName("SmartyAssign");
     $mdbView =& $container->getComponent("mdbView");
     $mdbAction =& $container->getComponent("mdbAction");
     $db =& $container->getComponent("DbObject");
     $errStr = $smartyAssign->getLang("_invalid_input");
     if (!isset($attributes)) {
         return $errStr;
     }
     $uploadsAction =& $container->getComponent("uploadsAction");
     $file = $uploadsAction->uploads();
     if (empty($file) || strtolower($file[0]['extension']) != "csv") {
         return MULTIDATABASE_IMPORT_FILE_TYPE_EORROR;
     }
     if (isset($file[0]['error_mes']) && $file[0]['error_mes'] != "") {
         return $file[0]['error_mes'];
     }
     $csv_file = FILEUPLOADS_DIR . "multidatabase/" . $file[0]['physical_file_name'];
     $handle = fopen($csv_file, 'r');
     if ($handle === false) {
         return MULTIDATABASE_IMPORT_FILE_OPEN_EORROR;
     }
     $row_data = array();
     while (($data = $mdbAction->fgetcsv_reg($handle)) !== FALSE) {
         $num = count($data);
         for ($c = 0; $c < $num; $c++) {
             $data[$c] = mb_convert_encoding($data[$c], "UTF-8", "SJIS");
         }
         $row_data[] = $data;
     }
     fclose($handle);
     //データが件数を取得(ヘッダ部を除く)
     $row_num = count($row_data) - 1;
     if ($row_num <= 0) {
         return MULTIDATABASE_IMPORT_FILE_NO_DATA;
     }
     $metadatas = $mdbView->getMetadatas(array("multidatabase_id" => intval($attributes)));
     if ($metadatas === false) {
         return $errStr;
     }
     if (count($metadatas) != count($row_data[0])) {
         return MULTIDATABASE_IMPORT_FILE_METADATA_NUM_ERROR;
     } else {
         $count = 0;
         foreach (array_keys($metadatas) as $i) {
             if ($metadatas[$i]['name'] != $row_data[0][$count]) {
                 return $row_data[0][$count] . ":" . MULTIDATABASE_IMPORT_FILE_METADATA_ERROR;
             }
             $count++;
         }
     }
     array_shift($row_data);
     $session =& $container->getComponent("Session");
     $session->setParameter(array("multidatabase_csv_data", $attributes), $row_data);
     return;
 }
コード例 #18
0
 /**
  * 登録フォーム存在チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if (empty($attributes["registration_id"]) && ($actionName == "registration_view_edit_registration_entry" || $actionName == "registration_action_edit_registration_entry")) {
         return;
     }
     $registrationView =& $container->getComponent("registrationView");
     $request =& $container->getComponent("Request");
     if (empty($attributes["registration_id"])) {
         $session =& $container->getComponent("Session");
         $session->removeParameter("registration_edit" . $attributes["block_id"]);
         $attributes["registration_id"] = $registrationView->getCurrentRegistrationID();
         $request->setParameter("registration_id", $attributes["registration_id"]);
     }
     if (empty($attributes["registration_id"])) {
         return $errStr;
     }
     if (empty($attributes["block_id"])) {
         $block = $registrationView->getBlock();
         if ($attributes["room_id"] != $block["room_id"]) {
             return $errStr;
         }
         $attributes["block_id"] = $block["block_id"];
         $request->setParameter("block_id", $attributes["block_id"]);
     }
     if (!$registrationView->registrationExists()) {
         return $errStr;
     }
     return;
 }
コード例 #19
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数(items,item_id=0を許すかどうか)
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     // container取得
     $container =& DIContainerFactory::getContainer();
     $mdbView =& $container->getComponent("mdbView");
     // metadata_id取得
     $metadata_id = intval($attributes);
     if (isset($params[1]) && $params[1] == _ON && $metadata_id == 0) {
         return;
     }
     $metadata =& $mdbView->getMetadataById($metadata_id);
     if ($metadata === false) {
         return $errStr;
     }
     //
     // Actionにデータセット
     //
     // actionChain取得
     $actionChain =& $container->getComponent("ActionChain");
     $action =& $actionChain->getCurAction();
     if (isset($params[0])) {
         BeanUtils::setAttributes($action, array($params[0] => $metadata));
     } else {
         BeanUtils::setAttributes($action, array("metadata" => $metadata));
     }
     return;
 }
コード例 #20
0
 /**
  * コンストラクター
  *
  * @access	public
  */
 function Search_Components_View()
 {
     $this->_container =& DIContainerFactory::getContainer();
     $this->_db =& $this->_container->getComponent("DbObject");
     $this->_session =& $this->_container->getComponent("Session");
     $this->_modulesView =& $this->_container->getComponent("modulesView");
 }
コード例 #21
0
 /**
  * コンストラクター
  *
  * @access	public
  */
 function Assignment_Components_Action()
 {
     $this->_container =& DIContainerFactory::getContainer();
     $this->_db =& $this->_container->getComponent("DbObject");
     $this->_request =& $this->_container->getComponent("Request");
     $this->_session =& $this->_container->getComponent("Session");
 }
コード例 #22
0
 /**
  * コンストラクター
  *
  * @access	public
  */
 function Pages_View()
 {
     $this->_container =& DIContainerFactory::getContainer();
     //DBオブジェクト取得
     $this->_db =& $this->_container->getComponent("DbObject");
     $this->_session =& $this->_container->getComponent("Session");
 }
コード例 #23
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent("Session");
     $authID = $session->getParameter("_auth_id");
     $request =& $container->getComponent("Request");
     $prefix_id_name = $request->getParameter("prefix_id_name");
     if ($authID < _AUTH_CHIEF && $prefix_id_name == CABINET_REFERENCE_PREFIX_NAME . $attributes["cabinet_id"]) {
         return $errStr;
     }
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if (!empty($prefix_id_name) == _ON && $actionName == "cabinet_view_main_init") {
         $request =& $container->getComponent("Request");
         $request->setParameter("theme_name", "system");
     }
     $cabinetView =& $container->getComponent("cabinetView");
     if (empty($attributes["cabinet_id"]) && $actionName == "cabinet_view_edit_create") {
         $cabinet = $cabinetView->getDefaultCabinet();
     } elseif ($prefix_id_name == CABINET_REFERENCE_PREFIX_NAME . $attributes["cabinet_id"] || $actionName == "cabinet_view_edit_modify") {
         $cabinet = $cabinetView->getCabinet();
         $request->setParameter("reference", _ON);
     } else {
         $cabinet = $cabinetView->getCurrentCabinet();
         $request->setParameter("reference", _OFF);
     }
     if (empty($cabinet)) {
         return $errStr;
     }
     $request->setParameter("cabinet", $cabinet);
     return;
 }
コード例 #24
0
 /**
  * 掲示板存在チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if (empty($attributes["bbs_id"]) && ($actionName == "bbs_view_edit_entry" || $actionName == "bbs_action_edit_entry")) {
         return;
     }
     $bbsView =& $container->getComponent("bbsView");
     $request =& $container->getComponent("Request");
     if (empty($attributes["bbs_id"])) {
         $attributes["bbs_id"] = $bbsView->getCurrentBbsID();
         $request->setParameter("bbs_id", $attributes["bbs_id"]);
     }
     if (empty($attributes["bbs_id"])) {
         return $errStr;
     }
     if (empty($attributes["block_id"])) {
         $block = $bbsView->getBlock();
         if ($attributes["room_id"] != $block["room_id"]) {
             return $errStr;
         }
         $attributes["block_id"] = $block["block_id"];
         $request->setParameter("block_id", $attributes["block_id"]);
     }
     if (!$bbsView->bbsExists()) {
         return $errStr;
     }
     return;
 }
コード例 #25
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent("Session");
     $request =& $container->getComponent("Request");
     $calendarView =& $container->getComponent("calendarView");
     if (!isset($attributes["display_type"])) {
         $attributes["display_type"] = null;
     }
     $calendar_block = $calendarView->getBlock($attributes["display_type"]);
     if ($calendar_block === false) {
         return $errStr;
     }
     $request->setParameter("calendar_block", $calendar_block);
     $room_arr = $attributes["room_arr"];
     $user_id = $session->getParameter("_user_id");
     if (!empty($user_id)) {
         $room_arr[0][0][0] = array("page_id" => CALENDAR_ALL_MEMBERS_ID, "parent_id" => 0, "page_name" => CALENDAR_ALL_MEMBERS_LANG, "thread_num" => 0, "space_type" => _SPACE_TYPE_UNDEFINED, "private_flag" => _OFF, "authority_id" => $session->getParameter("_user_auth_id"));
     }
     $request->setParameter("room_arr", $room_arr);
     if ($calendar_block["select_room"] == _ON) {
         $selectLooms = $calendarView->getSelectRoomList();
         if ($selectLooms === false) {
             return $errStr;
         }
         $request->setParameter("enroll_room_arr", $selectLooms["enroll_room_arr"]);
     }
 }
コード例 #26
0
 /**
  * 根記事投稿権限チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     if (empty($attributes["post_id"]) && empty($attributes["parent_id"]) && $attributes["bbs"]["topic_authority"]) {
         return;
     }
     if (!empty($attributes["post_id"])) {
         $postID = $attributes["post_id"];
     } elseif (!empty($attributes["parent_id"])) {
         $postID = $attributes["parent_id"];
     }
     $container =& DIContainerFactory::getContainer();
     $bbsView =& $container->getComponent("bbsView");
     if (!$bbsView->postExists($postID)) {
         return $errStr;
     }
     $post = $bbsView->getPost($postID);
     if (empty($post)) {
         return $errStr;
     }
     if (!empty($attributes["parent_id"])) {
         if (!$post["reply_authority"]) {
             return $errStr;
         }
         return;
     }
     if (!$post["edit_authority"]) {
         return $errStr;
     }
     if (!empty($attributes["temporary"]) && $attributes["temporary"] == _ON && !$post["temporary_authority"]) {
         return $errStr;
     }
     $request =& $container->getComponent("Request");
     $request->setParameter("post", $post);
     return;
 }
コード例 #27
0
 /**
  * 小テスト参照権限チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $session =& $container->getComponent("Session");
     $authID = $session->getParameter("_auth_id");
     $edit = $session->getParameter("quiz_edit" . $attributes["block_id"]);
     if ($authID < _AUTH_CHIEF && $edit == _ON) {
         return $errStr;
     }
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     $quizView =& $container->getComponent("quizView");
     if (empty($attributes["quiz_id"])) {
         $quiz = $quizView->getDefaultQuiz();
     } elseif ($edit == _ON) {
         $quiz = $quizView->getQuiz();
     } else {
         $quiz = $quizView->getCurrentQuiz();
     }
     if (empty($quiz)) {
         return $errStr;
     }
     $request =& $container->getComponent("Request");
     $request->setParameter("quiz", $quiz);
     return;
 }
コード例 #28
0
 /**
  * リンク番号チェックバリデータ
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     if (!$attributes["linklist"]["link_authority"]) {
         return $errStr;
     }
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $linklistView =& $container->getComponent("linklistView");
     if (!empty($attributes["drop_category_id"])) {
         $attributes["drop_link_id"] = $linklistView->getMaxLinkID();
         if (empty($attributes["drop_link_id"])) {
             $attributes["drop_link_id"] = "0";
             $drop["category_id"] = $attributes["drop_category_id"];
             $drop["link_sequence"] = "0";
         }
         $request->setParameter("drop_link_id", $attributes["drop_link_id"]);
     }
     $sequences = $linklistView->getLinkSequence();
     if (!$sequences) {
         return $errStr;
     }
     $dragLinkID = $attributes["drag_link_id"];
     $dropLinkID = $attributes["drop_link_id"];
     if (empty($dropLinkID)) {
         $sequences[$dropLinkID] = $drop;
     }
     if ($attributes["position"] == "top") {
         $sequences[$dropLinkID]["link_sequence"]--;
     }
     $request->setParameter("drag", $sequences[$dragLinkID]);
     $request->setParameter("drop", $sequences[$dropLinkID]);
     return;
 }
コード例 #29
0
 /**
  * プライベートルームチェックバリデータクラス
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $request =& $container->getComponent("Request");
     $session =& $container->getComponent("Session");
     $actionChain =& $container->getComponent("ActionChain");
     $action_name =& $actionChain->getCurActionName();
     $block_id = $request->getParameter("block_id");
     $room_id = $request->getParameter("room_id");
     $room_arr = $request->getParameter("room_arr");
     if ($session->getParameter("_user_id") != "0" && ($block_id == "0" || $action_name == "pm_view_main_message_entry")) {
         return;
     }
     $check = false;
     if (is_array($room_arr[0][0])) {
         foreach ($room_arr[0][0] as $room) {
             if ($room["room_id"] == $room_id) {
                 $private_flag = $room["private_flag"];
                 if ($private_flag == _ON) {
                     $check = true;
                 }
             }
         }
     }
     if (!$check && $session->getParameter("_user_id") != "0") {
         return $errStr;
     }
     return;
 }
コード例 #30
0
 /**
  * validate実行
  *
  * @param   mixed   $attributes チェックする値
  * @param   string  $errStr     エラー文字列
  * @param   array   $params     オプション引数
  * @return  string  エラー文字列(エラーの場合)
  * @access  public
  */
 function validate($attributes, $errStr, $params)
 {
     $container =& DIContainerFactory::getContainer();
     $reservationView =& $container->getComponent("reservationView");
     $actionChain =& $container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     if ($actionName == "reservation_action_edit_addblock") {
         $count = $reservationView->getCountCategory();
         $request =& $container->getComponent("Request");
         $request->setParameter("category_count", $count);
     } elseif ($actionName == "reservation_action_edit_category_sequence") {
         if (!$reservationView->categoryExists($attributes["drag_category_id"])) {
             return $errStr;
         }
         if (!$reservationView->categoryExists($attributes["drop_category_id"])) {
             return $errStr;
         }
     } elseif ($actionName == "reservation_action_edit_location_sequence") {
         if (isset($attributes["drop_category_id"]) && !$reservationView->categoryExists($attributes["drop_category_id"])) {
             return $errStr;
         }
     } elseif ($actionName == "reservation_view_edit_style_switchcate" || $actionName == "reservation_action_edit_style") {
         if (!empty($attributes["category_id"]) && !$reservationView->categoryExists($attributes["category_id"])) {
             return $errStr;
         }
     } else {
         if (!$reservationView->categoryExists($attributes["category_id"])) {
             return $errStr;
         }
     }
 }