/** * 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; }
/** * プライベートメッセージチェックバリデータクラス * 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; }
/** * 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; }
/** * 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"); }
/** * 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; }
/** * メッセージデータバリデータ * * @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; }
/** * 表示方法チェックバリデータ * * @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; }
/** * リンク必須項目チェックバリデータ * * @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; }
/** * セッション処理を行う * * @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"); }
/** * 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"]); }
/** * 正解チェックバリデータ * * @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; }
/** * 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"); }
/** * 汎用データベース存在チェックバリデータ * * @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; }
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 .= "&" . $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; }
/** * 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; }
/** * ログイン/権限チェックバリデータ * * @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; } }
/** * 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; }
/** * 登録フォーム存在チェックバリデータ * * @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; }
/** * 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; }
/** * コンストラクター * * @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"); }
/** * コンストラクター * * @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"); }
/** * コンストラクター * * @access public */ function Pages_View() { $this->_container =& DIContainerFactory::getContainer(); //DBオブジェクト取得 $this->_db =& $this->_container->getComponent("DbObject"); $this->_session =& $this->_container->getComponent("Session"); }
/** * 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; }
/** * 掲示板存在チェックバリデータ * * @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; }
/** * 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"]); } }
/** * 根記事投稿権限チェックバリデータ * * @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; }
/** * 小テスト参照権限チェックバリデータ * * @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; }
/** * リンク番号チェックバリデータ * * @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; }
/** * プライベートルームチェックバリデータクラス * * @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; }
/** * 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; } } }