function getDefaultView() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $community_id = $request->getParameter('community_id'); $bbs_id = $request->getParameter('bbs_id'); // コミュニティ情報 $community_row = ACSCommunity::get_community_row($community_id); // BBS記事一覧 $bbs_row = ACSBBS::get_bbs_row($bbs_id); // 信頼済みコミュニティ一覧 $bbs_row['trusted_community_row_array'] = ACSBBS::get_bbs_trusted_community_row_array($bbs_row['bbs_id']); // set $request->setAttribute('community_row', $community_row); $request->setAttribute('bbs_row', $bbs_row); // (投稿者本人 or コミュニティ管理者)のみがアクセスできる if ($acs_user_info_row['user_community_id'] != $bbs_row['user_community_id'] && !ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id'])) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } return View::INPUT; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるコミュニティIDを取得 $target_community_id = $request->getParameter('community_id'); // 対象となるフォルダIDを取得 $target_community_folder_id = $request->getParameter('folder_id'); // 詳細情報を表示するファイルIDを取得 $file_id = $request->getParameter('file_id'); // コミュニティ管理者か $is_community_admin = false; if (ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $target_community_id)) { $is_community_admin = true; } // 表示するページの所有者情報取得 $target_community_row = ACSCommunity::get_community_row($target_community_id); // フォルダ情報取得 $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $folder_obj = $community_folder_obj->get_folder_obj(); // ファイル情報取得 $file_obj = ACSFile::get_file_info_instance($file_id); // ファイル公開設定 $submit_kind = $request->getParameter('submit_kind'); // プットファイルでない場合 if ($file_obj->get_owner_community_id() == $target_community_id) { if ($submit_kind != "" && $is_community_admin) { // ファイル公開URL作成 if ($submit_kind == "insert") { $form['folder_id'] = $target_community_folder_id; $form['community_id'] = $target_community_id; ACSFileDetailInfo::insert_file_public_access($file_id, $form); // ファイル公開URL削除 } else { if ($submit_kind == "delete") { ACSFileDetailInfo::delete_file_public_access($file_id); // ファイル公開アクセス数リセット } else { if ($submit_kind == "reset") { $form['access_count'] = 0; $form['access_start_date'] = "'now'"; ACSFileDetailInfo::update_file_public_access($file_id, $form); } } } } } $contents_link_url = $this->getControllerPath('Community', 'FileDetail') . "&community_id=" . $target_community_id . "&file_id=" . $file_obj->get_file_id() . "&folder_id=" . $community_folder_obj->folder_obj->get_folder_id(); header("Location: {$contents_link_url}"); return View::SUCCESS; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_row = $request->getAttribute('community_row'); $community_member_user_info_row_array = $request->getAttribute('community_member_user_info_row_array'); foreach ($community_member_user_info_row_array as $index => $user_info_row) { // 自分のユーザ情報は設定対象外 if ($user_info_row['user_community_id'] == $acs_user_info_row['user_community_id']) { unset($community_member_user_info_row_array[$index]); continue; } $community_member_user_info_row_array[$index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $user_info_row['user_community_id']; $community_member_user_info_row_array[$index]['image_url'] = ACSUser::get_image_url($user_info_row['user_community_id'], 'thumb'); $community_member_user_info_row_array[$index]['is_community_admin'] = ACSCommunity::is_community_admin($user_info_row['user_community_id'], $community_row['community_id']); } // アクセス者 コミュニティ管理者 $acs_user_info_row['is_community_admin'] = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id']); $acs_user_community_row = ACSCommunity::get_community_row($acs_user_info_row['user_community_id']); $acs_user_info_row['community_name'] = $acs_user_community_row['community_name']; // コミュニティトップページのURL $community_top_page_url = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $community_row['community_id']; // action URL $action_url = $this->getControllerPath('Community', 'EditCommunityAdmin') . '&community_id=' . $community_row['community_id']; // テンプレート $this->setScreenId("0001"); $this->setTemplate('EditCommunityAdmin.tpl.php'); // set $this->setAttribute('acs_user_info_row', $acs_user_info_row); $this->setAttribute('community_row', $community_row); $this->setAttribute('community_member_user_info_row_array', $community_member_user_info_row_array); $this->setAttribute('community_top_page_url', $community_top_page_url); $this->setAttribute('action_url', $action_url); return parent::execute(); }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_row = $request->getAttribute('community_row'); $bbs_row = $request->getAttribute('bbs_row'); //ユーザ入力情報 $form = $user->getAttribute('new_form_obj'); // コミュニティメンバかどうか $is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']); //コミュニティ管理者かどうか $is_community_admin = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id']); // 加工 if ($bbs_row['bbs_res_delete_flag'] != 't') { // 親記事の投稿者 トップページURL $bbs_row['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $bbs_row['user_community_id']; // 写真URL $bbs_row['image_url'] = ACSUser::get_image_url($bbs_row['user_community_id'], 'thumb'); // 投稿日時 $bbs_row['post_date'] = ACSLib::convert_pg_date_to_str($bbs_row['post_date']); //ファイルの画像URL $bbs_row['file_url'] = ""; if ($bbs_row['file_id'] != "") { $bbs_row['file_url'] = ACSBBSFile::get_image_url($bbs_row['bbs_id'], 'thumb'); //投稿内表示用 $bbs_row['file_url_alink'] = ACSBBSFile::get_image_url($bbs_row['bbs_id'], ''); //ポップアップ用 } // パブリックリリース 掲載終了日 if ($bbs_row['expire_date'] != "") { $bbs_row['expire_date'] = ACSLib::convert_pg_date_to_str($bbs_row['expire_date'], true, false, false); } // 外部RSS情報 $external_rss_row = ACSExternalRSS::get_external_rss_row($bbs_row['bbs_id']); if ($external_rss_row) { if ($external_rss_row['rss_item_date'] != '') { // YYYY/MM/DD H:MM $external_rss_row['rss_item_date'] = ACSLib::convert_pg_date_to_str($external_rss_row['rss_item_date'], 0, 1, 0); } $bbs_row['external_rss_row'] = $external_rss_row; } // 返信記事 foreach ($bbs_row['bbs_res_row_array'] as $res_index => $bbs_res_row) { // 返信記事の投稿者 トップページURL $bbs_row['bbs_res_row_array'][$res_index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $bbs_res_row['user_community_id']; // 写真URL $bbs_row['bbs_res_row_array'][$res_index]['image_url'] = ACSUser::get_image_url($bbs_res_row['user_community_id'], 'thumb'); // 投稿日時 $bbs_row['bbs_res_row_array'][$res_index]['post_date'] = ACSLib::convert_pg_date_to_str($bbs_res_row['post_date']); // 返信の削除URL $bbs_row['bbs_res_row_array'][$res_index]['delete_bbs_res_url'] = $this->getControllerPath('Community', 'DeleteBBSRes') . '&community_id=' . $community_row['community_id'] . '&bbs_res_id=' . $bbs_row['bbs_res_row_array'][$res_index]['bbs_res_id'] . '&bbs_id=' . $bbs_row['bbs_id']; // 編集URL if (!ACSLib::get_boolean($bbs_res_row['bbs_res_delete_flag']) && ($bbs_res_row['user_community_id'] == $acs_user_info_row['user_community_id'] || $is_community_admin)) { $bbs_row['bbs_res_row_array'][$res_index]['edit_bbs_res_url'] = $this->getControllerPath('Community', 'EditBBSRes') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_res_row['bbs_id'] . '&bbs_res_id=' . $bbs_res_row['bbs_res_id']; } //削除権限フラグ (自分が投稿したもの 又は コミュニティ管理者) if ($bbs_res_row['user_community_id'] == $acs_user_info_row['user_community_id'] || $is_community_admin == 1) { $bbs_row['bbs_res_row_array'][$res_index]['bbs_set_delete_flag'] = true; } else { $bbs_row['bbs_res_row_array'][$res_index]['bbs_set_delete_flag'] = false; } } } // form action 確認画面への遷移 $action_url = $this->getControllerPath('Community', 'BBSResPre') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_row['bbs_id'] . '&move_id=1'; // コミュニティトップページのURL $community_top_page_url = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $community_row['community_id']; // BBS URL $bbs_top_page_url = $this->getControllerPath('Community', 'BBS') . '&community_id=' . $community_row['community_id']; // set $this->setAttribute('is_community_member', $is_community_member); $this->setAttribute('community_row', $request->getAttribute('community_row')); $this->setAttribute('bbs_row', $bbs_row); $this->setAttribute('action_url', $action_url); $this->setAttribute('community_top_page_url', $community_top_page_url); $this->setAttribute('bbs_top_page_url', $bbs_top_page_url); // テンプレート $this->setScreenId("0001"); $this->setTemplate('BBSRes.tpl.php'); if ($request->getParameter('move_id') == 3) { //ユーザ入力情報 $form = $user->getAttribute('new_form_obj'); $this->setAttribute('form', $form); $this->setAttribute('move_id', $request->getParameter('move_id')); } return parent::execute(); }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるコミュニティIDを取得 $target_community_id = $request->getParameter('community_id'); // 対象となるフォルダIDを取得 $target_community_folder_id = $request->getParameter('folder_id'); // 詳細情報を表示するファイルIDを取得 $file_id = $request->getParameter('file_id'); // コミュニティ管理者か $is_community_admin = false; if (ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $target_community_id)) { $is_community_admin = true; } // 表示するページの所有者情報取得 $target_community_row = ACSCommunity::get_community_row($target_community_id); // フォルダ情報取得 $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $folder_obj = $community_folder_obj->get_folder_obj(); // フォルダの公開範囲でアクセス制御 if (!$community_folder_obj->has_privilege($target_community_row)) { // 2010.03.24 未ログイン時の誘導 // ログインユーザでない場合はログイン画面へ if ($user->hasCredential('PUBLIC_USER')) { $controller->forward("User", "Login"); return; } $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ルートフォルダ直下のファイルはコミュニティメンバ以外アクセス不可 if ($folder_obj->get_is_root_folder() && $user->hasCredential('COMMUNITY_MEMBER')) { // 2010.03.24 未ログイン時の誘導 // ログインユーザでない場合はログイン画面へ if ($user->hasCredential('PUBLIC_USER')) { $controller->forward("User", "Login"); return; } $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ファイル情報取得 $file_obj = ACSFile::get_file_info_instance($file_id); // ファイルの詳細情報 $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_id); // ファイルの履歴情報 $file_history_row_array = ACSFileHistory::get_file_history_row_array($file_id); // ファイル履歴ごとのコメント foreach ($file_history_row_array as $index => $file_history_row) { $file_history_row_array[$index]['file_history_comment_row_array'] = ACSFileHistoryComment::get_file_history_comment_row_array($file_history_row['file_history_id']); } // ファイルアクセス履歴登録 if ($acs_user_info_row['is_acs_user']) { ACSFile::set_file_access_history($acs_user_info_row['user_community_id'], $file_id); } // プットファイルでない場合 if ($file_obj->get_owner_community_id() == $target_community_id) { // ファイルの公開情報 $file_public_access_row = ACSFileDetailInfo::get_file_public_access_row($file_id); } // set $request->setAttribute('target_community_row', $target_community_row); $request->setAttribute('file_obj', $file_obj); $request->setAttribute('community_folder_obj', $community_folder_obj); $request->setAttribute('file_detail_info_row', $file_detail_info_row); $request->setAttribute('file_history_row_array', $file_history_row_array); $request->setAttribute('is_community_admin', $is_community_admin); $request->setAttribute('file_public_access_row', $file_public_access_row); return View::SUCCESS; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); if (!$this->get_execute_privilege()) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるコミュニティIDを取得 $community_id = $request->ACSgetParameter('community_id'); $form = $request->ACSGetParameters(); // コミュニティ情報 $community_row = ACSCommunity::get_community_profile_row($community_id); // forward $done_obj = new ACSDone(); ACSDB::_do_query("BEGIN"); // 生成されたwaiting_idの配列 $waiting_id_array = array(); $ret = 1; // 1:成功 / 0:失敗 foreach ($form['trusted_community_id_array'] as $link_community_id) { if (ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $link_community_id)) { // リンク依頼先コミュニティの管理者である場合は承認待ち登録せずに、即座にリンクを追加する if ($form['link_type'] == 'parent') { $ret = ACSCommunity::set_community_link($link_community_id, $community_id); } elseif ($form['link_type'] == 'sub') { $ret = ACSCommunity::set_community_link($community_id, $link_community_id); } } else { if ($form['link_type'] == 'parent') { // 親コミュニティ追加承認待ち登録 $waiting_id = ACSWaiting::set_waiting_for_parent_community_link($link_community_id, $community_id, $acs_user_info_row['user_community_id'], $form['message']); } elseif ($form['link_type'] == 'sub') { // サブコミュニティ追加承認待ち登録 $waiting_id = ACSWaiting::set_waiting_for_sub_community_link($link_community_id, $community_id, $acs_user_info_row['user_community_id'], $form['message']); } if ($waiting_id) { // 生成されたwaiting情報を保持 array_push($waiting_id_array, $waiting_id); } else { $ret = 0; } } if (!$ret) { ACSDB::_do_query("ROLLBACK"); break; } } if ($ret) { // COMMIT ACSDB::_do_query("COMMIT"); // 生成されたwaiting情報を元に複数メール送信 foreach ($waiting_id_array as $waiting_id) { // コミュニティ間リンク追加依頼通知メール ACSWaiting::send_admission_request_notify_mail($waiting_id); } $done_obj->set_title(ACSMsg::get_msg('Community', 'AddCommunityLinkAction.class.php', 'M001')); $done_obj->set_message(ACSMsg::get_msg('Community', 'AddCommunityLinkAction.class.php', 'M002')); $done_obj->add_link(ACSMsg::get_msg('Community', 'AddCommunityLinkAction.class.php', 'M003'), $this->getControllerPath('Community', 'CommunityLink') . '&community_id=' . $community_row['community_id']); $done_obj->add_link($community_row['community_name'] . ' ' . ACSMsg::get_msg('Community', 'AddCommunityLinkAction.class.php', 'M004'), $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $community_row['community_id']); } else { $done_obj->set_message('失敗しました。'); } $request->setAttribute('done_obj', $done_obj); $controller->forward('Common', 'Done'); }
function execute() { $context =& $this->getContext(); $user = $context->getUser(); $request = $context->getRequest(); $controller = $context->getController(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_row = $request->getAttribute('community_row'); $sub_community_row_array = $request->getAttribute('sub_community_row_array'); $parent_community_row_array = $request->getAttribute('parent_community_row_array'); $community_member_user_info_row_array = $request->getAttribute('community_member_user_info_row_array'); $community_admin_user_info_row_array = $request->getAttribute('community_admin_user_info_row_array'); $community_id = $community_row['community_id']; $bbs_row_array = $request->getAttribute('bbs_row_array'); // コミュニティメンバ数 $community_member_display_max = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D03'), 'COMMUNITY_MEMBER_DISPLAY_MAX_COUNT'); $is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_id); $is_community_admin = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_id); // 掲示板新着記事数 $bbs_display_max = 10; // URL $bbs_url = $this->getControllerPath("Community", 'BBS') . '&community_id=' . $community_id; $community_folder_url = $this->getControllerPath("Community", 'Folder') . '&community_id=' . $community_id; if (!$is_community_member && $acs_user_info_row['is_acs_user']) { $join_community_url = $this->getControllerPath("Community", 'JoinCommunity') . '&community_id=' . $community_id; } if ($is_community_admin) { //コミュニティ プロフィールの編集 $community_change_url = $this->getControllerPath("Community", 'EditCommunity') . '&community_id=' . $community_id; } // コミュニティ退会URL // コミュニティメンバで、管理者でない場合は表示 if ($is_community_member and !$is_community_admin) { $leave_community_url = $this->getControllerPath("Community", 'LeaveCommunity') . '&community_id=' . $community_id; } // RSS出力ページのURL $PressRelease_community_url = $this->getControllerPath("Community", 'PressReleaseRSS') . '&community_id=' . $community_id; // 加工 // $community_row['register_date'] = ACSLib::convert_pg_date_to_str($community_row['register_date'], 0, 0, 0); // 登録日 $community_row['community_member_num'] = count($community_member_user_info_row_array); // メンバー数 // 画像ファイルのパスを設定 $community_row['image_url'] = ACSCommunity::get_image_url($community_id); if ($is_community_admin) { $edit_profile_image_url = $this->getControllerPath("Community", 'EditProfileImage') . '&community_id=' . $community_id; } // 参加資格の自由参加可能コミュニティ foreach ($community_row['join_trusted_community_row_array'] as $index => $join_trusted_community_row) { $community_row['join_trusted_community_row_array'][$index]['top_page_url'] = $this->getControllerPath("Community", DEFAULT_ACTION) . '&community_id=' . $join_trusted_community_row['community_id']; } // 掲示板の公開コミュニティ foreach ($community_row['contents_row_array']['bbs']['trusted_community_row_array'] as $index => $trusted_community_row) { $community_row['contents_row_array']['bbs']['trusted_community_row_array'][$index]['top_page_url'] = $this->getControllerPath("Community", DEFAULT_ACTION) . '&community_id=' . $trusted_community_row['community_id']; } // コミュニティフォルダの公開コミュニティ foreach ($community_row['contents_row_array']['community_folder']['trusted_community_row_array'] as $index => $trusted_community_row) { $community_row['contents_row_array']['community_folder']['trusted_community_row_array'][$index]['top_page_url'] = $this->getControllerPath("Community", DEFAULT_ACTION) . '&community_id=' . $trusted_community_row['community_id']; } // コミュニティメンバ $community_member_display_user_info_row_array = array(); $array_count = 0; foreach ($community_member_user_info_row_array as $index => $community_member_user_info_row) { $array_count++; $_community_member_row = array(); $_community_member_row['community_name'] = $community_member_user_info_row['community_name']; $_community_member_row['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $community_member_user_info_row['user_community_id']; $_community_member_row['image_url'] = ACSUser::get_image_url($community_member_user_info_row['user_community_id'], 'thumb'); $_community_member_row['friends_row_array_num'] = ACSUser::get_friends_row_array_num($community_member_user_info_row['user_community_id']); array_push($community_member_display_user_info_row_array, $_community_member_row); if ($array_count == $community_member_display_max) { break; } } // コミュニティ管理者 foreach ($community_admin_user_info_row_array as $index => $community_admin_user_info_row) { $community_admin_user_info_row_array[$index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $community_admin_user_info_row['user_community_id']; } // 親コミュニティ foreach ($parent_community_row_array as $index => $parent_community_row) { $parent_community_row_array[$index]['top_page_url'] = $this->getControllerPath("Community", DEFAULT_ACTION) . '&community_id=' . $parent_community_row['community_id']; } // サブコミュニティ foreach ($sub_community_row_array as $index => $sub_community_row) { $sub_community_row_array[$index]['top_page_url'] = $this->getControllerPath("Community", DEFAULT_ACTION) . '&community_id=' . $sub_community_row['community_id']; } // URL // コミュニティ間リンク設定 if ($is_community_admin) { $community_link_url = $this->getControllerPath("Community", 'CommunityLink') . '&community_id=' . $community_row['community_id']; } // コミュニティメンバ一覧 $community_member_list_url = $this->getControllerPath("Community", 'CommunityMemberList') . '&community_id=' . $community_row['community_id']; // メンバ削除 $delete_community_member_list_url = ""; if ($is_community_admin) { $delete_community_member_list_url = $this->getControllerPath("Community", 'DeleteCommunityMemberList'); $delete_community_member_list_url .= '&community_id=' . $community_row['community_id']; } // コミュニティ削除 $delete_community_url = ""; if ($is_community_admin) { $delete_community_url = $this->getControllerPath("Community", 'DeleteCommunity'); $delete_community_url .= '&community_id=' . $community_row['community_id']; } // コミュニティ招待 URL if ($is_community_admin) { $invite_to_community_url = $this->getControllerPath("Community", 'InviteToCommunity') . '&community_id=' . $community_row['community_id']; } // コミュニティスケジュール URL if ($is_community_member) { $community_schedule_url = $this->getControllerPath("Community", 'Schedule') . '&community_id=' . $community_id; } // コミュニティ管理者設定 if ($is_community_admin) { $edit_community_admin_url = $this->getControllerPath("Community", 'EditCommunityAdmin') . '&community_id=' . $community_row['community_id']; } // 外部RSS自動取り込み設定 if ($is_community_admin) { $edit_external_rss_url = $this->getControllerPath("Community", 'EditExternalRSS') . '&community_id=' . $community_row['community_id']; } if ($is_community_admin) { // 待機: コミュニティ参加 承認待ち $waiting_for_join_community_row_array = $request->getAttribute('waiting_for_join_community_row_array'); $waiting_for_join_community_row_array_num = count($waiting_for_join_community_row_array); if ($waiting_for_join_community_row_array_num) { // マイフレンズ追加 承認待ち URL $waiting_for_join_community_url = $this->getControllerPath("Community", 'WaitingList') . '&community_id=' . $community_id . '&waiting_type_code=' . $waiting_for_join_community_row_array[0]['waiting_type_code'] . '&waiting_status_code=' . $waiting_for_join_community_row_array[0]['waiting_status_code']; } // 待機: 親コミュニティ追加 $waiting_for_parent_community_link_row_array = $request->getAttribute('waiting_for_parent_community_link_row_array'); $waiting_for_parent_community_link_row_array_num = count($waiting_for_parent_community_link_row_array); if ($waiting_for_parent_community_link_row_array_num) { // 親コミュニティ追加 承認待ち URL $waiting_for_parent_community_link_url = $this->getControllerPath("Community", 'WaitingList') . '&community_id=' . $community_id . '&waiting_type_code=' . $waiting_for_parent_community_link_row_array[0]['waiting_type_code'] . '&waiting_status_code=' . $waiting_for_parent_community_link_row_array[0]['waiting_status_code']; } // 待機: サブコミュニティ追加 $waiting_for_sub_community_link_row_array = $request->getAttribute('waiting_for_sub_community_link_row_array'); $waiting_for_sub_community_link_row_array_num = count($waiting_for_sub_community_link_row_array); if ($waiting_for_sub_community_link_row_array_num) { // サブコミュニティ追加 承認待ち URL $waiting_for_sub_community_link_url = $this->getControllerPath("Community", 'WaitingList') . '&community_id=' . $community_id . '&waiting_type_code=' . $waiting_for_sub_community_link_row_array[0]['waiting_type_code'] . '&waiting_status_code=' . $waiting_for_sub_community_link_row_array[0]['waiting_status_code']; } } // 掲示板に対するアクセス権 $bbs_contents_row = ACSCommunity::get_contents_row($community_id, ACSMsg::get_mst('contents_type_master', 'D41')); $bbs_contents_row['trusted_community_row_array'] = ACSCommunity::get_contents_trusted_community_row_array($community_id, $bbs_contents_row['contents_type_code'], $bbs_contents_row['open_level_code']); $role_array = ACSAccessControl::get_community_role_array($acs_user_info_row, $community_row); $ret = ACSAccessControl::is_valid_user_for_community($acs_user_info_row, $role_array, $bbs_contents_row); if ($ret) { // 掲示版最新情報 foreach ($bbs_row_array as $index => $bbs_row) { // 返信画面URL $bbs_row_array[$index]['bbs_res_url'] = $this->getControllerPath("Community", 'BBSRes') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_row['bbs_id']; $bbs_row_array[$index]['bbs_last_post_date'] = ACSLib::convert_pg_date_to_str($bbs_row['bbs_last_post_date'], true, false, false); } //---- アクセス制御 ----// $role_array = ACSAccessControl::get_community_role_array($acs_user_info_row, $community_row); $bbs_row_array = ACSAccessControl::get_valid_row_array_for_community($acs_user_info_row, $role_array, $bbs_row_array); //----------------------// $bbs_row_array = array_slice($bbs_row_array, 0, $bbs_display_max); } else { $bbs_row_array = array(); } // set $this->setAttribute('community_row', $community_row); $this->setAttribute('parent_community_row_array', $parent_community_row_array); $this->setAttribute('sub_community_row_array', $sub_community_row_array); $this->setAttribute('community_member_display_user_info_row_array', $community_member_display_user_info_row_array); $this->setAttribute('community_admin_user_info_row_array', $community_admin_user_info_row_array); $this->setAttribute('bbs_row_array', $bbs_row_array); $this->setAttribute('is_community_member', $is_community_member); $this->setAttribute('is_community_admin', $is_community_admin); $this->setAttribute('bbs_url', $bbs_url); $this->setAttribute('community_folder_url', $community_folder_url); $this->setAttribute('create_sub_community_url', $create_sub_community_url); $this->setAttribute('join_community_url', $join_community_url); $this->setAttribute('leave_community_url', $leave_community_url); $this->setAttribute('community_change_url', $community_change_url); $this->setAttribute('community_schedule_url', $community_schedule_url); $this->setAttribute('community_link_url', $community_link_url); $this->setAttribute('delete_community_url', $delete_community_url); $this->setAttribute('edit_community_admin_url', $edit_community_admin_url); $this->setAttribute('invite_to_community_url', $invite_to_community_url); $this->setAttribute('edit_community_profile_url', $edit_community_profile_url); $this->setAttribute('edit_external_rss_url', $edit_external_rss_url); $this->setAttribute('community_member_list_url', $community_member_list_url); $this->setAttribute('delete_community_member_list_url', $delete_community_member_list_url); $this->setAttribute('PressRelease_community_url', $PressRelease_community_url); //画像 $this->setAttribute('edit_profile_image_url', $edit_profile_image_url); // 待機 $this->setAttribute('waiting_for_join_community_row_array_num', $waiting_for_join_community_row_array_num); $this->setAttribute('waiting_for_join_community_url', $waiting_for_join_community_url); $this->setAttribute('waiting_for_parent_community_link_row_array_num', $waiting_for_parent_community_link_row_array_num); $this->setAttribute('waiting_for_parent_community_link_url', $waiting_for_parent_community_link_url); $this->setAttribute('waiting_for_sub_community_link_row_array_num', $waiting_for_sub_community_link_row_array_num); $this->setAttribute('waiting_for_sub_community_link_url', $waiting_for_sub_community_link_url); // テンプレート $this->setScreenId("0001"); $this->setTemplate('Index.tpl.php'); return parent::execute(); }
/** * 初期処理 * @access public * @param Object $context context * @return boolean 処理結果 */ public function initialize($context) { parent::initialize($context); // アクションの共通処理を実装する /* 初期値をセットする */ $this->controller = $context->getController(); $this->request = $context->getRequest(); $this->user = $context->getUser(); $this->moduleName = $context->getModuleName(); $this->actionName = $context->getActionName(); $this->messages =& CommonMessages::getInstance(); /* requestオブジェクトにフォーム登録リストをセットする */ $this->request->setAttributeByRef('formList', $this->formList); $request =& $context->getRequest(); $user =& $context->getUser(); // セッションからユーザIDが取得できず、POSTでユーザIDが取得可能な場合 $user_id = $user->getAttribute('login_user_id'); $justLogin = false; if (($user_id == NULL || $user_id == "") && ($_POST['userid'] != NULL && $_POST['userid'] != "")) { $input_user_id = $_POST['userid']; $input_passwd = $_POST['passwd']; // エラーチェック(.htpasswd、LDAPの順) $user_id = ACSSystem::check_passwd($input_user_id, $input_passwd); if ($user_id) { $justLogin = true; $getLogoutDateEverytime = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D08'), 'GET_LOGOUT_DATE_EVERYTIME'); $user->setAttribute('getLogoutDateEverytime', $getLogoutDateEverytime); } } // 言語設定の実行 if ($request->getparameter('acsmsg')) { ACSMsg::set_lang($request->getparameter('acsmsg')); ACSMsg::set_lang_cookie($request->getparameter('acsmsg')); } // 権限クリア $user->clearCredentials(); // 認証済みを登録 $user->setAuthenticated(true); // $acs_user_info_rowを設定する // $acs_user_info_row = array(); if ($user_id) { $acs_user_info_row = ACSUser::get_user_info_row_by_user_id($user_id); // ユーザ情報が無い if ($user_id && !$acs_user_info_row['user_id']) { $acs_user_info_row['user_id'] = $user_id; $acs_user_info_row['user_community_id'] = ACS_PUBLIC_USER_COMMUNITY_ID; $acs_user_info_row['is_acs_user'] = false; } else { $acs_user_info_row['is_acs_user'] = true; // 権限登録 $user->addCredential('ACS_USER'); } // ログインユーザ(認証を通過したユーザ)かどうか $acs_user_info_row['is_login_user'] = true; // システム管理者かどうか if ($acs_user_info_row['administrator_flag'] == 't') { // 権限登録 $user->addCredential('SYSTEM_ADMIN_USER'); } // LDAPユーザかどうか (ファイル認証ユーザでなければLDAPユーザとみなす) $acs_user_info_row['is_ldap_user'] = !ACSSystem::is_htpasswd_user($user_id); // LDAP認証以外の場合、パスワード変更権限を付与 if ($acs_user_info_row['is_ldap_user']) { $user->addCredential('LDAP_USER'); } else { $user->addCredential('NOT_LDAP_USER'); } // 未登録のLDAPユーザの場合は氏名を調べる if (!$acs_user_info_row['is_acs_user'] && $acs_user_info_row['is_ldap_user']) { $ldap_user_info_row = ACSLDAP::get_ldap_user_info_row($acs_user_info_row['user_id']); $acs_user_info_row['user_name'] = $ldap_user_info_row['user_name']; } // フレンズIDの配列を取得する $acs_user_info_row['friends_id_array'] = ACSUser::get_friends_id_array($acs_user_info_row['user_community_id']); // 各機能ごとで必要な権限を判別・設定する // マイページ所有者、コミュニティ管理者、メンバの設定など if ($this->moduleName == 'User') { $id = $request->getParameter('id'); if (!$id) { $id = $acs_user_info_row['user_community_id']; } // マイページ所有者かどうか if ($acs_user_info_row['user_community_id'] == $request->getParameter('id')) { $user->addCredential('USER_PAGE_OWNER'); // 友人かどうか } elseif (!ACSUser::is_friends($id, $acs_user_info_row['user_community_id'])) { $user->addCredential('NOT_FRIENDS'); } } elseif ($this->moduleName == 'Community') { $community_id = $request->getParameter('community_id'); // コミュニティIDの指定がある場合のみ、権限設定を行う if ($community_id) { $is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_id); $is_community_admin = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_id); // コミュニティメンバかどうか if ($is_community_member) { $user->addCredential('COMMUNITY_MEMBER'); // コミュニティ管理者かどうか if ($is_community_admin) { $user->addCredential('COMMUNITY_ADMIN'); } // コミュニティメンバではない } else { $user->addCredential('NOT_COMMUNITY_MEMBER'); } } } $user->setAttribute('login_user_id', $user_id); } else { $acs_user_info_row['user_name'] = ACS_PUBLIC_USER_NAME; $acs_user_info_row['user_community_id'] = ACS_PUBLIC_USER_COMMUNITY_ID; $acs_user_info_row['is_acs_user'] = false; $acs_user_info_row['is_login_user'] = false; // 権限設定 $user->addCredential('PUBLIC_USER'); } $user->setAttribute('acs_user_info_row', $acs_user_info_row); // ログイン情報作成 if ($justLogin) { ACSUser::set_login_date($user); } // アクセス毎のログアウト時間更新 $getLogoutDateEverytime = $user->getAttribute('getLogoutDateEverytime'); if ($getLogoutDateEverytime != NULL && $getLogoutDateEverytime == "1") { ACSUser::acs_login_date($user); } if ($acs_user_info_row['is_acs_user'] && $acs_user_info_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D01')) { // OK } elseif ($acs_user_info_row['is_acs_user'] && $acs_user_info_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D03') || !$acs_user_info_row['is_acs_user'] && $acs_user_info_row['is_ldap_user']) { // マイページ全体が非公開のユーザ or 未登録のLDAPユーザ // マイページのプロフィール編集可能な権限を付与する $user->addCredential('USER_PAGE_OWNER'); if ($this->moduleName == DEFAULT_MODULE && ($this->actionName == 'EditProfile' || $this->actionName == 'SetOpenLevelForProfile')) { // 未登録のLDAPユーザの場合、プロフィール設定画面へのアクセスを許可 } else { $edit_profile_url = $this->getControllerPath(DEFAULT_MODULE, 'EditProfile'); header("Location: {$edit_profile_url}"); } } elseif (!$acs_user_info_row['is_acs_user'] && $acs_user_info_row['is_login_user'] && !$acs_user_info_row['is_ldap_user']) { echo "Forbidden"; exit; } // form で enctype="multipart/form-data" の指定が合った場合の対処 // エンコーディングを変換する if (count($_FILES) && !ini_get('mbstring.encoding_translation')) { $request->params = ACSLib::convert_post_data_encoding($request->params); } // 共通アクセス制御 // $access_control_info = $this->get_access_control_info($controller, $request, $user); $valid_flag = true; if ($access_control_info) { $valid_flag = false; if ($access_control_info['role_array'] && $access_control_info['contents_row_array']) { foreach ($access_control_info['contents_row_array'] as $contents_row) { if ($contents_row['community_type_name'] == ACSMsg::get_mst('community_type_master', 'D40')) { if (ACSAccessControl::is_valid_user_for_community($acs_user_info_row, $access_control_info['role_array'], $contents_row)) { $valid_flag = true; } else { $valid_flag = false; break; } } elseif ($contents_row['community_type_name'] == ACSMsg::get_mst('community_type_master', 'D10')) { if (ACSAccessControl::is_valid_user_for_user_community($acs_user_info_row, $access_control_info['role_array'], $contents_row)) { $valid_flag = true; } else { $valid_flag = false; break; } } } } } if (!$valid_flag) { $this->controller->forward(SECURE_MODULE, SECURE_ACTION); exit; } // 各機能固有の権限判別を取得 if ($this->get_execute_privilege($controller, $request, $user)) { $user->addCredential('EXECUTE'); } //return parent::initialize($controller); return true; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_row = $request->getAttribute('community_row'); $bbs_row_array = $request->getAttribute('bbs_row_array'); // コミュニティメンバかどうか $is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']); //コミュニティ管理者かどうか $is_community_admin = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id']); // form action 確認画面への遷移 $action_url = $this->getControllerPath('Community', 'BBSPre') . '&community_id=' . $community_row['community_id'] . '&move_id=1'; // コミュニティトップページのURL $community_top_page_url = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $community_row['community_id']; // BBSスレッド一覧URL $bbs_thread_list_url = $this->getControllerPath('Community', 'BBSThreadList') . '&community_id=' . $community_row['community_id']; // 信頼済みコミュニティ選択ページのURL $select_trusted_community_url = $this->getControllerPath('Community', 'SelectTrustedCommunity') . '&form_name=bbs_form'; //検索画面url $search_bbs_url = $this->getControllerPath('Community', 'SearchBBS') . '&community_id=' . $community_row['community_id'] . '&move_id=1'; //外部RSS取り込み実行 if ($community_row['contents_row_array']['external_rss_url']['contents_value'] != '') { $get_external_rss_url = $this->getControllerPath('Community', 'GetExternalRSS') . '&community_id=' . $community_row['community_id']; } // 掲示板RSS URL $term = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D03'), 'BBS_RSS_TERM'); $bbs_rss_url = $this->getControllerPath('Community', 'BBSRSS') . '&community_id=' . $community_row['community_id'] . '&term=' . $term; // 加工 foreach ($bbs_row_array as $index => $bbs_row) { // 親記事の投稿者 トップページURL $bbs_row_array[$index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $bbs_row['user_community_id']; // 写真URL $bbs_row_array[$index]['image_url'] = ACSUser::get_image_url($bbs_row['user_community_id'], 'thumb'); // 投稿日時 $bbs_row_array[$index]['post_date'] = ACSLib::convert_pg_date_to_str($bbs_row['post_date']); // 返信画面URL $bbs_row_array[$index]['bbs_res_url'] = $this->getControllerPath('Community', 'BBSRes') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_row['bbs_id']; // 編集画面URL if ($bbs_row['user_community_id'] == $acs_user_info_row['user_community_id'] || $is_community_admin) { $bbs_row_array[$index]['edit_bbs_url'] = $this->getControllerPath('Community', 'EditBBS') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_row['bbs_id']; } // 削除画面URL $bbs_row_array[$index]['bbs_delete_url'] = $this->getControllerPath('Community', 'DeleteBBS') . '&community_id=' . $community_row['community_id'] . '&bbs_id=' . $bbs_row['bbs_id']; //削除権限フラグ (自分が投稿したもの 又は コミュニティ管理者) if ($bbs_row['user_community_id'] == $acs_user_info_row['user_community_id'] || $is_community_admin == 1) { $bbs_row_array[$index]['bbs_set_delete_flag'] = true; } else { $bbs_row_array[$index]['bbs_set_delete_flag'] = false; } //ファイルの画像URL $bbs_row_array[$index]['file_url'] = ""; if ($bbs_row['file_id'] != "") { $bbs_row_array[$index]['file_url'] = ACSBBSFile::get_image_url($bbs_row['bbs_id'], 'thumb'); //投稿内表示用 $bbs_row_array[$index]['file_url_alink'] = ACSBBSFile::get_image_url($bbs_row['bbs_id'], ''); //ポップアップ用 } // パブリックリリース 掲載終了日 2/21add @akitsu $bbs_row_array[$index]['expire_date'] = ""; if ($bbs_row['expire_date'] != "") { $bbs_row_array[$index]['expire_date'] = ACSLib::convert_pg_date_to_str($bbs_row['expire_date'], true, false, false); } if ($bbs_row['bbs_delete_flag'] != 't') { // 返信記事 $bbs_res_display_max = 10; $bbs_row_array[$index]['bbs_res_row_array_num'] = count($bbs_row_array[$index]['bbs_res_row_array']); if ($bbs_row_array[$index]['bbs_res_row_array_num'] > $bbs_res_display_max) { // 最新の10件のみslice $bbs_row_array[$index]['bbs_res_row_array'] = array_slice($bbs_row_array[$index]['bbs_res_row_array'], -1 * $bbs_res_display_max); // 省略件数を算出 $bbs_row_array[$index]['omission_num'] = $bbs_row_array[$index]['bbs_res_row_array_num'] - $bbs_res_display_max; } foreach ($bbs_row_array[$index]['bbs_res_row_array'] as $res_index => $bbs_res_row) { // 返信記事の投稿者 トップページURL $bbs_row_array[$index]['bbs_res_row_array'][$res_index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $bbs_res_row['user_community_id']; // 写真URL $bbs_row_array[$index]['bbs_res_row_array'][$res_index]['image_url'] = ACSUser::get_image_url($bbs_res_row['user_community_id'], 'thumb'); // 投稿日時 $bbs_row_array[$index]['bbs_res_row_array'][$res_index]['post_date'] = ACSLib::convert_pg_date_to_str($bbs_res_row['post_date']); //削除情報 $bbs_row_array[$index]['bbs_res_row_array'][$res_index]['delete_flag'] = ACSLib::get_boolean($bbs_res_row['res_delete_flag']); } } } // 親コミュニティ / サブコミュニティの情報を取得する $parent_community_row_array = ACSCommunity::get_parent_community_row_array($community_row['community_id']); foreach ($parent_community_row_array as $index => $parent_community_row) { $parent_community_row_array[$index]['top_page_url'] = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $parent_community_row['community_id']; } $sub_community_row_array = ACSCommunity::get_sub_community_row_array($community_row['community_id']); foreach ($sub_community_row_array as $index => $sub_community_row) { $sub_community_row_array[$index]['top_page_url'] = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $sub_community_row['community_id']; } //---- アクセス制御 ----// $role_array = ACSAccessControl::get_community_role_array($acs_user_info_row, $community_row); $bbs_row_array = ACSAccessControl::get_valid_row_array_for_community($acs_user_info_row, $role_array, $bbs_row_array); //----------------------// // 外部RSS情報 foreach ($bbs_row_array as $index => $bbs_row) { $external_rss_row = ACSExternalRSS::get_external_rss_row($bbs_row['bbs_id']); if ($external_rss_row) { if ($external_rss_row['rss_item_date'] != '') { // YYYY/MM/DD H:MM $external_rss_row['rss_item_date'] = ACSLib::convert_pg_date_to_str($external_rss_row['rss_item_date'], 0, 1, 0); } $bbs_row_array[$index]['external_rss_row'] = $external_rss_row; } } // ページング設定 $display_count = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), 'NEW_INFO_LIST_DISPLAY_MAX_COUNT'); $paging_info = $this->getPagingInfo($controller, $request, $bbs_row_array, $display_count); // set $this->setAttribute('is_community_member', $is_community_member); $this->setAttribute('is_community_admin', $is_community_admin); $this->setAttribute('action_url', $action_url); $this->setAttribute('community_top_page_url', $community_top_page_url); $this->setAttribute('bbs_thread_list_url', $bbs_thread_list_url); $this->setAttribute('select_trusted_community_url', $select_trusted_community_url); $this->setAttribute('search_bbs_url', $search_bbs_url); $this->setAttribute('get_external_rss_url', $get_external_rss_url); $this->setAttribute('bbs_rss_url', $bbs_rss_url); $this->setAttribute('community_row', $request->getAttribute('community_row')); $this->setAttribute('bbs_row_array', $bbs_row_array); $this->setAttribute('paging_info', $paging_info); $this->setAttribute('open_level_master_row_array', $request->getAttribute('open_level_master_row_array')); $this->setAttribute('parent_community_row_array', $parent_community_row_array); $this->setAttribute('sub_community_row_array', $sub_community_row_array); // ML送信チェック表示設定 if ($community_row['contents_row_array']['ml_status']['contents_value'] == 'ACTIVE') { $this->setAttribute('is_ml_active', TRUE); } // テンプレート $this->setScreenId("0001"); $this->setTemplate('BBS.tpl.php'); // エラーメッセージ $this->setAttribute('error_message', $this->getErrorMessage($controller, $request, $user)); if ($request->getParameter('move_id') == 3) { //ユーザ入力情報 $form = $user->getAttribute('new_form_obj'); // パブリックリリース 掲載終了日 $form['expire_date'] = ""; if ($form['expire_date'] != "") { $form['expire_date'] = ACSLib::convert_pg_date_to_str($form['expire_date'], false, false, false); } $this->setAttribute('form', $form); $this->setAttribute('move_id', $request->getParameter('move_id')); } return parent::execute(); }
function execute() { $context =& $this->getContext(); $user = $context->getUser(); $request = $context->getRequest(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 表示対象となるユーザコミュニティIDを取得 $user_community_id = $request->ACSgetParameter('id'); if (empty($user_community_id)) { $user_community_id = $acs_user_info_row['user_community_id']; } // 表示対象のユーザが存在しない場合は、エラーを表示 if (!ACSUser::get_user_info_row_by_user_community_id($user_community_id)) { // 未ログインの時はPublic/Indexに遷移 header("Location: ./index.php?module=Public&action=Index"); // return View::ERROR; } // 自身のページか if ($acs_user_info_row['user_community_id'] == $user_community_id) { $is_self_page = 1; } else { $is_self_page = 0; } // プロフィール $target_user_info_row = ACSUser::get_user_profile_row($user_community_id); // マイフレンズ $friends_row_array = ACSUser::get_simple_friends_row_array($user_community_id); // マイコミュニティ $community_row_array = ACSUser::get_community_row_array($user_community_id); // 最終ログイン // ログイン済みの場合 if ($acs_user_info_row['is_login_user']) { $last_login_row = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D52')); } // マイページデザインを取得する $selection_css_row = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D53')); $selection_css = $selection_css_row['contents_value'] == '' ? ACS_DEFAULT_SELECTION_CSS_FILE : $selection_css_row['contents_value']; $waiting_for_join_community_row_array_array = array(); $waiting_for_parent_community_link_row_array_array = array(); $waiting_for_sub_community_link_row_array_array = array(); foreach ($community_row_array as $index => $community_row) { $community_row_array[$index]['contents_row_array']['self'] = ACSCommunity::get_contents_row($community_row['community_id'], ACSMsg::get_mst('contents_type_master', 'D00')); $community_row_array[$index]['is_community_admin'] = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id']); $community_row_array[$index]['is_community_member'] = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']); if ($is_self_page) { // 待機: コミュニティ参加 承認待ち (自分のマイコミュニティ) if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D20'), ACSMsg::get_mst('waiting_status_master', 'D10')))) { $waiting_for_join_community_row_array['waiting_row_array'] = $waiting_row_array; $waiting_for_join_community_row_array['community_row'] = $community_row; array_push($waiting_for_join_community_row_array_array, $waiting_for_join_community_row_array); } // 待機: 親コミュニティ追加 承認待ち if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D40'), ACSMsg::get_mst('waiting_status_master', 'D10')))) { $waiting_for_parent_community_link_row_array['waiting_row_array'] = $waiting_row_array; $waiting_for_parent_community_link_row_array['community_row'] = $community_row; array_push($waiting_for_parent_community_link_row_array_array, $waiting_for_parent_community_link_row_array); } // 待機: サブコミュニティ追加 承認待ち if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D50'), ACSMsg::get_mst('waiting_status_master', 'D10')))) { $waiting_for_sub_community_link_row_array['waiting_row_array'] = $waiting_row_array; $waiting_for_sub_community_link_row_array['community_row'] = $community_row; array_push($waiting_for_sub_community_link_row_array_array, $waiting_for_sub_community_link_row_array); } } } if ($is_self_page) { // 待機: マイフレンズ追加 承認待ち $waiting_for_add_friends_row_array = ACSWaiting::get_waiting_row_array($user_community_id, ACSMsg::get_mst('waiting_type_master', 'D10'), ACSMsg::get_mst('waiting_status_master', 'D10')); // 待機: コミュニティ招待 承認待ち $waiting_for_invite_to_community_row_array = ACSWaiting::get_waiting_row_array($user_community_id, ACSMsg::get_mst('waiting_type_master', 'D30'), ACSMsg::get_mst('waiting_status_master', 'D10')); // マイダイアリーの新着コメント $new_comment_diary_row_array = ACSDiary::get_new_comment_diary_row_array($user_community_id); // 新着メッセージ $new_message_row_array = ACSMessage::get_new_message_row_array($user_community_id); // システムからのお知らせ $system_announce_row_array = ACSSystemAnnounce::get_valid_system_announce_row_array(); } // set $request->setAttribute('user_community_id', $user_community_id); $request->setAttribute('target_user_info_row', $target_user_info_row); $request->setAttribute('is_self_page', $is_self_page); $request->setAttribute('friends_row_array', $friends_row_array); $request->setAttribute('community_row_array', $community_row_array); $request->setAttribute('waiting_for_add_friends_row_array', $waiting_for_add_friends_row_array); $request->setAttribute('waiting_for_join_community_row_array_array', $waiting_for_join_community_row_array_array); $request->setAttribute('waiting_for_parent_community_link_row_array_array', $waiting_for_parent_community_link_row_array_array); $request->setAttribute('waiting_for_sub_community_link_row_array_array', $waiting_for_sub_community_link_row_array_array); $request->setAttribute('waiting_for_invite_to_community_row_array', $waiting_for_invite_to_community_row_array); $request->setAttribute('new_comment_diary_row_array', $new_comment_diary_row_array); $request->setAttribute('system_announce_row_array', $system_announce_row_array); $request->setAttribute('last_login', $last_login_row['contents_value']); $request->setAttribute('selection_css', $selection_css); $request->setAttribute('new_message_row_array', $new_message_row_array); return View::SUCCESS; }
/** * コミュニティ内コンテンツのアクセス時におけるrole_arrayを取得する * * @param $acs_user_info_row アクセス者のユーザ情報 * @param $target_community_row アクセス対象のコミュニティ情報 * @return role_array (連想配列) */ static function get_community_role_array($acs_user_info_row, $target_community_row) { $role_array = array('public' => false, 'user' => false, 'member' => false, 'administrator' => false, 'system_administrator' => false); // (1) 一般ユーザ(外部ユーザ)かどうか if (!$acs_user_info_row['is_acs_user']) { $role_array['public'] = true; } else { // (2) ログインユーザかどうか $role_array['user'] = true; // (3) コミュニティメンバかどうか if (ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $target_community_row['community_id'])) { $role_array['member'] = true; } // (4) コミュニティ管理者かどうか if (ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $target_community_row['community_id'])) { $role_array['administrator'] = true; } // (5) システム管理者かどうか if (ACSAccessControl::is_system_administrator($acs_user_info_row)) { $role_array['administrator'] = true; } } return $role_array; }