function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($request->getParameter('id'));
     $target_user_community_id = $request->getParameter('id');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $target_user_community_folder_id = $request->getParameter('folder_id');
     $target_file_id = $request->getParameter('file_id');
     $file_history_id = $request->getParameter('file_history_id');
     $view_mode = $request->getParameter('mode');
     // ファイルダウンロード処理
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     $folder_obj = $user_folder_obj->get_folder_obj();
     // フォルダの公開範囲でアクセス制御
     if (!$user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ルートフォルダ直下のファイルは本人以外アクセス不可
     $privilege_array = $this->getCredential();
     if ($folder_obj->get_is_root_folder() && !in_array('USER_PAGE_OWNER', $privilege_array)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     $file_obj = ACSFile::get_file_info_instance($target_file_id);
     if ($view_mode == 'thumb') {
         $ret = $file_obj->view_image($file_history_id, $view_mode);
     } else {
         $file_obj->download_history_file($file_history_id, $view_mode);
     }
 }
예제 #2
0
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 表示対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 他ユーザのデータが見えないようチェック
     if (!$this->get_execute_privilege() && $acs_user_info_row["user_community_id"] != $user_community_id) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     //送信済画面の処理
     $move_id = $request->getParameter('move_id');
     if ($move_id == 2) {
         // 全ての送信済メッセージ
         $message_row_array = ACSMessage::get_send_message_row_array($user_community_id);
     } else {
         // 全ての受信メッセージ
         $message_row_array = ACSMessage::get_receive_message_row_array($user_community_id);
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('message_row_array', $message_row_array);
     $request->setAttribute('move_id', $move_id);
     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_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 詳細情報を表示するフォルダIDを取得
     $detail_user_community_folder_id = $request->getParameter('detail_folder_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     $detail_user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $detail_user_community_folder_id);
     // フォルダの公開範囲でアクセス制御
     if (!$detail_user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('detail_user_folder_obj', $detail_user_folder_obj);
     return View::SUCCESS;
 }
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 対象となるマイフレンズグループコミュニティIDを取得
     $friends_group_community_id = $request->ACSgetParameter('community_id');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // get
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイフレンズ一覧
     $friends_row_array = ACSUser::get_friends_row_array($user_community_id);
     // 指定されたマイフレンズグループの情報
     $friends_group_row = ACSCommunity::get_community_row($friends_group_community_id);
     // 指定されたマイフレンズグループのメンバ一覧
     $friends_group_member_row_array = ACSCommunity::get_community_member_user_info_row_array($friends_group_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('friends_row_array', $friends_row_array);
     $request->setAttribute('friends_group_row', $friends_group_row);
     $request->setAttribute('friends_group_member_row_array', $friends_group_member_row_array);
     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を取得
     $user_community_id = $request->ACSgetParameter('id');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイフレンズグループ
     $friends_group_row_array = ACSUser::get_friends_group_row_array($user_community_id);
     foreach ($friends_group_row_array as $index => $friends_group_row) {
         $friends_group_row_array[$index]['friends_row_array'] = ACSCommunity::get_community_member_user_info_row_array($friends_group_row['community_id']);
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('friends_group_row_array', $friends_group_row_array);
     return View::SUCCESS;
 }
 function getDefaultView()
 {
     $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を取得
     $user_community_id = $request->ACSgetParameter('id');
     $waiting_type_code = $request->ACSgetParameter('waiting_type_code');
     $waiting_status_code = $request->ACSgetParameter('waiting_status_code');
     // 待機種別マスタ
     $waiting_type_master_array = ACSDB::get_master_array('waiting_type');
     // 待機状態マスタ
     $waiting_status_master_array = ACSDB::get_master_array('waiting_status');
     $waiting_type_name = $waiting_type_master_array[$waiting_type_code];
     $waiting_status_name = $waiting_status_master_array[$waiting_status_code];
     // 待機情報
     $waiting_row_array = ACSWaiting::get_waiting_row_array($user_community_id, $waiting_type_name, $waiting_status_name);
     if ($waiting_type_name == ACSMsg::get_mst('waiting_type_master', 'D30')) {
         foreach ($waiting_row_array as $index => $waiting_row) {
             $waiting_row_array[$index]['entry_user_info_row'] = ACSUser::get_user_info_row_by_user_community_id($waiting_row['entry_user_community_id']);
         }
     }
     // set
     $request->setAttribute('waiting_type_name', $waiting_type_name);
     $request->setAttribute('waiting_row_array', $waiting_row_array);
     return View::INPUT;
 }
예제 #7
0
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     //mode 画面の遷移を取得する
     $move_id = $request->getParameter('move_id');
     // ユーザー情報
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるUserIDを取得
     $user_community_id = $request->getParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     /* 入力画面より */
     if ($move_id == 1) {
         //☆☆ ここからほぼ同じ
         // 画面上のフォーム情報を取得する
         $form['subject'] = $request->getParameter('subject');
         //件名:subject
         $form['body'] = $request->getParameter('body');
         //内容:body
         $form['info_mail'] = $request->getParameter('info_mail');
         //メール通知:info_mail
         $user->setAttribute('new_form_obj', $form);
         $request->setAttribute('target_user_info_row', $target_user_info_row);
         //☆☆ ここまでほぼ同じ
         return View::SUCCESS;
         /* 登録確定ボタン「はい」より */
     } else {
         if ($move_id == 2) {
             $acs_user_info_row = $user->getAttribute('acs_user_info_row');
             $user_community_id = $request->getParameter('id');
             //☆☆ ここからほぼ同じ
             // 画面上のフォーム情報を取得する
             $form = $user->getAttribute('new_form_obj');
             $new_file_obj = $form['file_obj'];
             $form['user_community_id'] = $user_community_id;
             $form['acs_user_info_id'] = $acs_user_info_row['user_community_id'];
             //☆☆ ここまでほぼ同じ
             // DBへの書き込み等
             ACSDB::_do_query("BEGIN");
             // Messageテーブル情報
             $ret = ACSMessage::set_message($form);
             if ($ret) {
                 ACSDB::_do_query("COMMIT");
             } else {
                 ACSDB::_do_query("ROLLBACK");
             }
             // 通知メール送信処理
             if ($form['info_mail'] == "on") {
                 ACSMessage::send_info_mail($ret, $form['user_community_id'], $form['acs_user_info_id']);
             }
             // 書き込み後、GETの処理へ
             $action_url = $this->getControllerPath('User', 'MessageBox') . '&id=' . $acs_user_info_row['user_community_id'] . '&move_id=2';
             header("Location: {$action_url}");
         }
     }
 }
예제 #8
0
 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_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 詳細情報を表示するファイルIDを取得
     $file_id = $request->getParameter('file_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     $folder_obj = $user_folder_obj->get_folder_obj();
     // フォルダの公開範囲でアクセス制御
     if (!$user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ルートフォルダ直下のファイルは本人以外アクセス不可
     $privilege_array = $this->getCredential();
     //if ($folder_obj->get_is_root_folder() && !in_array('USER_PAGE_OWNER', $privilege_array)) {
     if ($folder_obj->get_is_root_folder() && !$this->get_execute_privilege()) {
         $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);
     }
     // 足跡情報取得
     $footprint_url = $this->getControllerPath('User', 'FileDetail') . "&id=" . $target_user_community_id . "&file_id=" . $file_obj->get_file_id() . "&folder_id=" . $user_folder_obj->folder_obj->get_folder_id();
     $where = "foot.contents_link_url = '" . $footprint_url . "'";
     $where .= " AND foot.visitor_community_id = '" . $acs_user_info_row['user_community_id'] . "'";
     $footprint_info = ACSUser::get_footprint_list($target_user_community_id, $where);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('file_obj', $file_obj);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('file_detail_info_row', $file_detail_info_row);
     $request->setAttribute('file_history_row_array', $file_history_row_array);
     $request->setAttribute('footprint_info', $footprint_info);
     return View::SUCCESS;
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     // 必須チェック
     //    Validator でできないチェックはここで行う
     if (!$request->getParameter('selected_folder') && !$request->getParameter('selected_file')) {
         // エラーの場合、処理終了
         return $this->setError($controller, $request, $user, 'selected_folder', ACSMsg::get_msg('User', 'RenameFolderListAction.class.php', 'M001'));
     }
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // 対象となるユーザコミュニティIDを取得
     $target_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     // 名前変更対象を取得
     // フォルダ
     $selected_folder_obj_array = array();
     // View にわたす変更対象のフォルダ
     $selected_folder_row_array = array();
     $selected_folder_array = $request->getParameter('selected_folder');
     if ($selected_folder_array) {
         foreach ($selected_folder_array as $selected_folder_id) {
             $_selected_folder_obj = $user_folder_obj->folder_obj->get_folder_obj($selected_folder_id);
             array_push($selected_folder_obj_array, $_selected_folder_obj);
         }
     }
     // ファイル
     $selected_file_obj_array = array();
     // View にわたす変更対象のファイル
     $selected_file_row_array = array();
     $selected_file_array = $request->getParameter('selected_file');
     if ($selected_file_array) {
         foreach ($selected_file_array as $selected_file_id) {
             $_selected_file_obj = $user_folder_obj->folder_obj->get_file_obj($selected_file_id);
             array_push($selected_file_obj_array, $_selected_file_obj);
         }
     }
     // set
     $request->setAttribute('selected_folder_obj_array', $selected_folder_obj_array);
     $request->setAttribute('selected_file_obj_array', $selected_file_obj_array);
     return View::INPUT;
 }
예제 #10
0
 function get_access_control_info(&$controller, &$request, &$user)
 {
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->getParameter('id');
     // コミュニティ情報
     $user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // アクセス制御情報 //
     $friends_list_contents_row = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D11'));
     $access_control_info = array('role_array' => ACSAccessControl::get_user_community_role_array($acs_user_info_row, $user_info_row), 'contents_row_array' => array($friends_list_contents_row));
     return $access_control_info;
 }
예제 #11
0
 function getDefaultView()
 {
     $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');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     $year = $request->ACSgetParameter('year');
     // 年
     $month = $request->ACSgetParameter('month');
     // 月
     $day = $request->ACSgetParameter('day');
     // 日
     if (checkdate($month, $day, $year)) {
         // 年月日指定
         $diary_row_array = ACSDiary::get_diary_row_array_by_year_month_day($user_community_id, $year, $month, $day);
     } elseif (checkdate($month, 1, $year)) {
         // 年月指定
         $diary_row_array = ACSDiary::get_diary_row_array_by_year_month($user_community_id, $year, $month);
         unset($day);
     } else {
         // 全てのダイアリー
         $diary_row_array = ACSDiary::get_diary_row_array($user_community_id);
         unset($year);
         unset($month);
         unset($day);
     }
     // 公開範囲を最終登録と同じもので表示しておく
     if ($diary_row_array) {
         $last_open_level_code = $diary_row_array[0]['open_level_code'];
     }
     // 信頼済みコミュニティ情報
     foreach ($diary_row_array as $index => $diary_row) {
         if ($diary_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
             $diary_row_array[$index]['trusted_community_row_array'] = ACSDiary::get_diary_trusted_community_row_array($diary_row['diary_id']);
         }
     }
     // 公開範囲
     $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D10'), ACSMsg::get_mst('contents_type_master', 'D21'));
     // マイフレンズグループ
     $friends_group_row_array = ACSUser::get_friends_group_row_array($user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('diary_row_array', $diary_row_array);
     $request->setAttribute('open_level_master_row_array', $open_level_master_row_array);
     $request->setAttribute('friends_group_row_array', $friends_group_row_array);
     $request->setAttribute('last_open_level_code', $last_open_level_code);
     return View::INPUT;
 }
예제 #12
0
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象のmessage_idを取得
     $message_id = $request->ACSgetParameter('message_id');
     // ユーザ情報
     $user_community_id = $request->ACSgetParameter('id');
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // 他ユーザのデータが見えないようチェック
     if ($this->get_execute_privilege() == 2 && $acs_user_info_row["user_community_id"] != $user_community_id) {
         // ログイン画面に遷移
         $controller->forward("User", "Login");
         return;
     }
     if ($this->get_execute_privilege() == 1 && $acs_user_info_row["user_community_id"] != $user_community_id) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     //送信済画面の処理
     $move_id = $request->getParameter('move_id');
     if ($move_id == 2) {
         // 送信済メッセージ詳細
         $message_row = ACSMessage::get_send_message_row($message_id);
     } else {
         // 受信メッセージ詳細
         $message_row = ACSMessage::get_receive_message_row($message_id);
         // 未読・既読判定
         if ($message_row['read_flag'] == "f") {
             // 未読時、DBのフラグ変更
             $message_receiver_id = $message_row['message_receiver_id'];
             ACSDB::_do_query("BEGIN");
             // message_receiverテーブル情報変更
             $ret = ACSMessage::read_message($message_receiver_id);
             if ($ret) {
                 ACSDB::_do_query("COMMIT");
             } else {
                 ACSDB::_do_query("ROLLBACK");
             }
         }
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('message_row', $message_row);
     $request->setAttribute('move_id', $move_id);
     return View::INPUT;
 }
예제 #13
0
 /**
  * 初期画面
  * GETメソッドの場合、呼ばれる
  */
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     /* エラーを取得 */
     //$error_row = $user->getAttribute('error_row');
     //$user->removeAttribute('error_row');
     $target_user_community_id = $request->getParameter('id');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $target_user_community_folder_id = $request->getParameter('folder_id');
     $mode = $request->getParameter('mode');
     // 表示モード
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($request->getParameter('id'));
     // グループ表示
     $file_detail_info_row_array = array();
     if ($mode == 'group') {
         // ファイルオブジェクトの配列
         $target_folder_obj = $user_folder_obj->get_folder_obj();
         $file_obj_array = $target_folder_obj->get_file_obj_array();
         foreach ($file_obj_array as $file_obj) {
             $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_obj->get_file_id());
             if (!$file_detail_info_row['file_id']) {
                 // ファイル詳細情報が設定されてない場合
                 $file_detail_info_row['file_id'] = $file_obj->get_file_id();
             }
             $file_detail_info_row['display_file_name'] = $file_obj->get_display_file_name();
             $file_detail_info_row['thumbnail_server_file_name'] = $file_obj->get_thumbnail_server_file_name();
             array_push($file_detail_info_row_array, $file_detail_info_row);
         }
         // ファイルカテゴリコードごとのファイルコンテンツ種別の連想配列を取得する
         $file_contents_type_master_row_array_array = ACSFileDetailInfo::get_file_contents_type_master_row_array_array();
     }
     // フォルダの公開範囲でアクセス制御
     if (!$user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('error_row', $error_row);
     $request->setAttribute('mode', $mode);
     if ($mode == 'group') {
         $request->setAttribute('file_detail_info_row_array', $file_detail_info_row_array);
         $request->setAttribute('file_contents_type_master_row_array_array', $file_contents_type_master_row_array_array);
     }
     return View::SUCCESS;
 }
예제 #14
0
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     return View::INPUT;
 }
예제 #15
0
 function execute()
 {
     $context =& $this->getContext();
     $user = $context->getUser();
     $request = $context->getRequest();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // get
     $target_user_info_row = $request->getAttribute('target_user_info_row');
     $new_diary_row_array = $request->getAttribute('new_diary_row_array');
     // 加工
     foreach ($new_diary_row_array as $index => $new_diary_row) {
         $new_diary_row_array[$index]['diary_comment_url'] = $this->getControllerPath(DEFAULT_MODULE, 'DiaryComment') . '&id=' . $new_diary_row['community_id'] . '&diary_id=' . $new_diary_row['diary_id'];
         $new_diary_row_array[$index]['is_unread'] = ACSLib::get_boolean($new_diary_row['is_unread']);
     }
     // 新着日記一覧URL
     $new_diary_url = $this->getControllerPath(DEFAULT_MODULE, 'NewDiary') . '&id=' . $target_user_info_row['user_community_id'];
     // 表示件数制御
     $display_count = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), 'NEW_INFO_TOP_DISPLAY_MAX_COUNT');
     //---- アクセス制御 ----//
     $_new_diary_row_array = array();
     foreach ($new_diary_row_array as $index => $new_diary_row) {
         if (count($_new_diary_row_array) >= $display_count) {
             break;
         }
         // diary_trusted_community
         if ($new_diary_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
             $new_diary_row_array[$index]['trusted_community_row_array'] = $new_diary_row['trusted_community_row_array'] = ACSDiary::get_diary_trusted_community_row_array($new_diary_row['diary_id']);
         }
         $diary_target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($new_diary_row['community_id']);
         $role_array = ACSAccessControl::get_user_community_role_array($acs_user_info_row, $diary_target_user_info_row);
         $new_diary_row = ACSAccessControl::get_valid_row_for_user_community($acs_user_info_row, $role_array, $new_diary_row);
         if ($new_diary_row) {
             array_push($_new_diary_row_array, $new_diary_row);
         }
     }
     $new_diary_row_array = $_new_diary_row_array;
     //----------------------//
     // set
     $this->setAttribute('target_user_info_row', $target_user_info_row);
     $this->setAttribute('new_diary_row_array', $new_diary_row_array);
     $this->setAttribute('new_diary_url', $new_diary_url);
     $this->setAttribute('get_days', $request->getAttribute('get_days'));
     // テンプレート
     $this->setTemplate('NewDiary.tpl.php');
     $context->getController()->setRenderMode(View::RENDER_VAR);
     $request->setAttribute("NewDiary", $this->render());
     return parent::execute();
 }
예제 #16
0
 function get_execute_privilege(&$controller, &$request, &$user)
 {
     // 公開範囲情報取得
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $diary_file_row = ACSDiaryFile::get_diary_file_row_by_file_id($request->ACSgetParameter('id'));
     $diary_row = ACSDiary::get_diary_row($diary_file_row['diary_id']);
     if (!$diary_row) {
         return false;
     }
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($diary_row['community_id']);
     if ($diary_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
         $diary_row['trusted_community_row_array'] = ACSDiary::get_diary_trusted_community_row_array($diary_row['diary_id']);
     }
     // アクセス制御判定
     $role_array = ACSAccessControl::get_user_community_role_array($acs_user_info_row, $target_user_info_row);
     $ret = ACSAccessControl::is_valid_user_for_user_community($acs_user_info_row, $role_array, $diary_row);
     return $ret;
 }
예제 #17
0
 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を取得
     $user_community_id = $request->ACSgetParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // 公開範囲のリストデータ
     $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D10'), ACSMsg::get_mst('contents_type_master', 'D21'));
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('open_level_master_row_array', $open_level_master_row_array);
     return View::INPUT;
 }
 function execute()
 {
     $context =& $this->getContext();
     $controller = $context->getController();
     $user = $context->getUser();
     $request = $context->getRequest();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     if ($user_community_id == null || $user_community_id == '') {
         $user_community_id = $request->getAttribute("id");
     }
     // 他ユーザのデータが見えないようチェック
     if (!$this->get_execute_privilege() && $acs_user_info_row["user_community_id"] != $user_community_id) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // インライン表示の場合: 1(true)
     $inline_mode = $request->ACSgetParameter('inline_mode');
     if ($inline_mode == null || $inline_mode == '') {
         $inline_mode = $request->getAttribute("inline_mode");
     }
     // 取得範囲の指定
     $get_days = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), $inline_mode ? 'NEW_INFO_TOP_TERM' : 'NEW_INFO_LIST_TERM');
     $request->setAttribute('get_days', $get_days);
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // コメントしたダイアリー一覧を取得する
     if ($inline_mode) {
         $commented_diary_row_array = ACSDiary::get_commented_diary_row_array($user_community_id, $get_days, true);
     } else {
         $commented_diary_row_array = ACSDiary::get_commented_diary_row_array($user_community_id, $get_days);
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('commented_diary_row_array', $commented_diary_row_array);
     if ($inline_mode) {
         return View::INPUT;
     } else {
         return View::SUCCESS;
     }
 }
 /**
  * プット先コミュニティ選択画面表示
  */
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 対象となるフォルダIDを取得
     $target_folder_id = $request->ACSgetParameter('folder_id');
     // 他ユーザのデータが見えないようチェック
     if (!$this->get_execute_privilege()) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイコミュニティ
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // マイコミュニティのフォルダツリーを追加
     $community_folder_obj_array = array();
     $community_row_index = 0;
     foreach ($community_row_array as $community_row) {
         $community_folder_obj = array();
         $folder_tree = array();
         // ルートフォルダのインスタンス生成
         $community_folder_obj = new ACSCommunityFolder($community_row['community_id'], $acs_user_info_row, '');
         $folder_tree = $community_folder_obj->get_folder_tree();
         $community_row_array[$community_row_index]['folder_tree'] = $folder_tree;
         $community_row_index++;
     }
     // プット先コミュニティ(設定されているコミュニティ)
     $put_community_row_array = ACSFolderModel::select_put_community($target_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('target_folder_id', $target_folder_id);
     $request->setAttribute('community_row_array', $community_row_array);
     $request->setAttribute('put_community_row_array', $put_community_row_array);
     return View::INPUT;
 }
 /**
  * 初期画面
  * GETメソッドの場合、呼ばれる
  */
 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_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     return View::SUCCESS;
 }
예제 #21
0
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     // 表示対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 他ユーザのデータが見えないようチェック
     if (!$this->get_execute_privilege()) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     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を取得
     $user_community_id = $request->ACSgetParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイコミュニティ
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // コミュニティ全体の公開範囲をセットする
     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_member'] = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']);
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('community_row_array', $community_row_array);
     return View::SUCCESS;
 }
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $target_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 詳細情報を表示するファイルIDを取得
     $file_id = $request->getParameter('file_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     // ファイル情報取得
     $file_obj = ACSFile::get_file_info_instance($file_id);
     // ファイルの詳細情報
     $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_id);
     // マスタ
     $file_category_master_array = ACSDB::get_master_array('file_category');
     $file_contents_type_master_array = ACSDB::get_master_array('file_contents_type');
     // ファイルカテゴリコードごとのファイルコンテンツ種別の連想配列を取得する
     $file_contents_type_master_row_array_array = ACSFileDetailInfo::get_file_contents_type_master_row_array_array();
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('file_obj', $file_obj);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('file_detail_info_row', $file_detail_info_row);
     $request->setAttribute('file_contents_type_master_row_array_array', $file_contents_type_master_row_array_array);
     $request->setAttribute('file_category_master_array', $file_category_master_array);
     $request->setAttribute('file_contents_type_master_array', $file_contents_type_master_array);
     return View::SUCCESS;
 }
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 削除するユーザコミュニティIDを取得
     $delete_user_community_id = $request->ACSgetParameter('delete_user_community_id');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // 削除するユーザ情報
     $delete_user_info_row = ACSUser::get_user_info_row_by_user_community_id($delete_user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('delete_user_info_row', $delete_user_info_row);
     return View::INPUT;
 }
 function get_user_info_row_array($user_community_id_array)
 {
     $user_info_row_array = array();
     foreach ($user_community_id_array as $user_community_id) {
         $user_info_row = array();
         $user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
         array_push($user_info_row_array, $user_info_row);
     }
     return $user_info_row_array;
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     // 必須チェック
     //	Validator でできないチェックはここで行う
     if (!$request->getParameter('selected_folder') && !$request->getParameter('selected_file')) {
         // エラーの場合、処理終了
         //return $this->setError($controller, $request, $user, 'selected_folder', '削除するフォルダ・ファイルを選択してください。');
         return $this->setError($controller, $request, $user, 'selected_folder', ACSMsg::get_msg('User', 'DeleteFolderAction.class.php', 'M001'));
     }
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $target_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     /* ------------ */
     /* 確認画面表示 */
     /* ------------ */
     if ($request->getParameter('action_type') == 'confirm') {
         return $this->getDefaultView();
     } elseif ($request->getParameter('action_type') == 'delete') {
         ACSDB::_do_query("BEGIN");
         // フォルダ
         $folder_row_array = array();
         $delete_folder_id_array = $request->getParameter('selected_folder');
         if ($delete_folder_id_array) {
             foreach ($delete_folder_id_array as $folder_id) {
                 // 削除処理
                 $_folder_obj = $user_folder_obj->folder_obj->get_folder_obj($folder_id);
                 $ret = $user_folder_obj->delete_folder($_folder_obj);
                 if (!$ret) {
                     ACSDB::_do_query("ROLLBACK;");
                     print "ERROR: Remove folder failed.";
                     exit;
                 }
             }
         }
         // ファイル
         $file_row_array = array();
         $delete_file_id_array = $request->getParameter('selected_file');
         if ($delete_file_id_array) {
             foreach ($delete_file_id_array as $file_id) {
                 // 削除処理
                 $_file_obj = $user_folder_obj->folder_obj->get_file_obj($file_id);
                 $ret = $_file_obj->delete_file();
                 if (!$ret) {
                     ACSDB::_do_query("ROLLBACK;");
                     print "ERROR: Remove file failed.";
                     exit;
                 }
             }
         }
         ACSDB::_do_query("COMMIT;");
         // フォルダ表示アクション呼び出し
         $folder_action = $this->getControllerPath('User', 'Folder');
         $folder_action .= '&id=' . $target_user_community_id;
         $folder_action .= '&folder_id=' . $target_user_community_folder_id;
         header("Location: {$folder_action}");
     }
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     // 必須チェック
     //    Validator でできないチェックはここで行う
     if (!$request->getParameter('selected_message')) {
         // エラーの場合、処理終了
         return $this->setError($controller, $request, $user, 'selected_message', ACSMsg::get_msg('User', 'DeleteMessageAction.class.php', 'M001'));
     }
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $target_user_community_id = $request->getParameter('id');
     // 対象となるメッセージIDを取得
     $target_message_id = $request->getParameter('selected_message');
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('target_message_id', $target_message_id);
     $request->setAttribute('move_id', $request->getParameter('move_id'));
     /* ------------ */
     /* 確認画面表示 */
     /* ------------ */
     if ($request->getParameter('action_type') == 'confirm') {
         return View::SUCCESS;
     } elseif ($request->getParameter('action_type') == 'delete') {
         $move_id = $request->getParameter('move_id');
         ACSDB::_do_query("BEGIN");
         // フォルダ
         $folder_row_array = array();
         $delete_message_id_array = $request->getParameter('selected_message');
         if ($delete_message_id_array) {
             if ($move_id == 2) {
                 foreach ($delete_message_id_array as $message_id) {
                     // 削除処理
                     $ret = ACSMessage::delete_send_message($message_id);
                     if (!$ret) {
                         ACSDB::_do_query("ROLLBACK;");
                         print "ERROR: Delete message failed.";
                         exit;
                     }
                 }
             } else {
                 foreach ($delete_message_id_array as $message_id) {
                     // 削除処理
                     $ret = ACSMessage::delete_receive_message($message_id);
                     if (!$ret) {
                         ACSDB::_do_query("ROLLBACK;");
                         print "ERROR: Delete message failed.";
                         exit;
                     }
                 }
             }
         }
         ACSDB::_do_query("COMMIT;");
         // フォルダ表示アクション呼び出し
         $message_action = $this->getControllerPath('User', 'MessageBox');
         $message_action .= '&id=' . $target_user_community_id;
         if ($move_id == 2) {
             $message_action .= '&move_id=2';
         }
         header("Location: {$message_action}");
     }
 }
예제 #28
0
 /**
  * ユーザコミュニティIDを指定して、ユーザ情報(プロフィール)を取得する
  *
  * @param ユーザコミュニティID
  * @param $include_private_flag 非公開ユーザコミュニティも含める
  * @return ユーザ情報 (連想配列)
  */
 static function get_user_profile_row($user_community_id, $include_private_flag = false)
 {
     $user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id, $include_private_flag);
     if (!$user_info_row) {
         return;
     }
     // プロフィール(contents)
     $user_info_row['contents_row_array'] = array();
     $user_info_row['contents_row_array']['user_name'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D01'));
     $user_info_row['contents_row_array']['mail_addr'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D02'));
     $user_info_row['contents_row_array']['belonging'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D03'));
     $user_info_row['contents_row_array']['speciality'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D04'));
     $user_info_row['contents_row_array']['birthplace'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D05'));
     $user_info_row['contents_row_array']['birthday'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D06'));
     $user_info_row['contents_row_array']['community_profile'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D07'));
     $user_info_row['contents_row_array']['community_profile_login'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D08'));
     $user_info_row['contents_row_array']['community_profile_friend'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D09'));
     $user_info_row['contents_row_array']['self'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D00'));
     $user_info_row['contents_row_array']['friends_list'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D11'));
     $user_info_row['contents_row_array']['mail_lang'] = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D51'));
     // データ無しの場合は空のarrayを入れる
     foreach ($user_info_row['contents_row_array'] as $contents_key => $contents_row) {
         if (!$contents_row) {
             $user_info_row['contents_row_array'][$contents_key] = array();
         }
     }
     // 信頼済みコミュニティ
     // birthplace
     if ($user_info_row['contents_row_array']['birthplace']['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
         // trusted_community_flag
         $user_info_row['contents_row_array']['birthplace']['trusted_community_row_array'] = ACSCommunity::get_contents_trusted_community_row_array($user_community_id, $user_info_row['contents_row_array']['birthplace']['contents_type_code'], $user_info_row['contents_row_array']['birthplace']['open_level_code']);
         if (count($user_info_row['contents_row_array']['birthplace']['trusted_community_row_array']) && $user_info_row['contents_row_array']['birthplace']['trusted_community_row_array'][0]['community_type_name'] == ACSMsg::get_mst('community_type_master', 'D20')) {
             $user_info_row['contents_row_array']['birthplace']['trusted_community_flag'] = 0;
         } else {
             $user_info_row['contents_row_array']['birthplace']['trusted_community_flag'] = 1;
         }
         // trusted_community_id_csv
         $trusted_community_id_array = array();
         foreach ($user_info_row['contents_row_array']['birthplace']['trusted_community_row_array'] as $trusted_community_row) {
             array_push($trusted_community_id_array, $trusted_community_row['community_id']);
         }
         $user_info_row['contents_row_array']['birthplace']['trusted_community_id_csv'] = implode(',', $trusted_community_id_array);
     }
     // birthday
     if ($user_info_row['contents_row_array']['birthday']['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
         // trusted_community_flag
         $user_info_row['contents_row_array']['birthday']['trusted_community_row_array'] = ACSCommunity::get_contents_trusted_community_row_array($user_community_id, $user_info_row['contents_row_array']['birthday']['contents_type_code'], $user_info_row['contents_row_array']['birthday']['open_level_code']);
         if (count($user_info_row['contents_row_array']['birthday']['trusted_community_row_array']) && $user_info_row['contents_row_array']['birthday']['trusted_community_row_array'][0]['community_type_name'] == ACSMsg::get_mst('community_type_master', 'D20')) {
             $user_info_row['contents_row_array']['birthday']['trusted_community_flag'] = 0;
         } else {
             $user_info_row['contents_row_array']['birthday']['trusted_community_flag'] = 1;
         }
         // trusted_community_id_csv
         $trusted_community_id_array = array();
         foreach ($user_info_row['contents_row_array']['birthday']['trusted_community_row_array'] as $trusted_community_row) {
             array_push($trusted_community_id_array, $trusted_community_row['community_id']);
         }
         $user_info_row['contents_row_array']['birthday']['trusted_community_id_csv'] = implode(',', $trusted_community_id_array);
     }
     // flat
     foreach ($user_info_row['contents_row_array'] as $contents_key => $contents_row) {
         $user_info_row[$contents_key] = $contents_row['contents_value'];
     }
     return $user_info_row;
 }
 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
     $target_user_info_row = $request->getAttribute('target_user_info_row');
     $diary_row_array = $request->getAttribute('diary_row_array_result');
     $open_level_master_row_array = $request->getAttribute('open_level_master_row_array');
     $friends_group_row_array = $request->getAttribute('friends_group_row_array');
     $err_str = $request->getAttribute('err_str');
     $form_pre = $request->getAttribute('form_pre');
     // トップページURL
     $link_page_url['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, 'Diary') . '&id=' . $acs_user_info_row['user_community_id'];
     //他人の日記を閲覧している場合のトップページURL
     $link_page_url['else_user_top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, 'Index') . '&id=' . $target_user_info_row['community_id'];
     //他人の日記を閲覧している場合の日記ページURL
     $link_page_url['else_user_diary_url'] = $this->getControllerPath(DEFAULT_MODULE, 'Diary') . '&id=' . $target_user_info_row['community_id'];
     //検索画面url
     $link_page_url['search_diary_url'] = SCRIPT_PATH;
     // get でサブミットするための、遷移先情報
     $module = 'User';
     $action = 'SearchResultDiary';
     $id = $target_user_info_row['community_id'];
     $move_id = '2';
     // 加工
     if ($diary_row_array) {
         foreach ($diary_row_array as $index => $diary_row) {
             // ユーザ画像URL
             $diary_row_array[$index]['image_url'] = ACSUser::get_image_url($diary_row['community_id'], 'thumb');
             //ユーザページ
             $user_row = ACSUser::get_user_profile_row($diary_row['community_id']);
             $diary_row_array[$index]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $diary_row['community_id'];
             $diary_row_array[$index]['community_name'] = $user_row['community_name'];
             // 投稿日時
             $diary_row_array[$index]['post_date'] = ACSLib::convert_pg_date_to_str($diary_row['post_date']);
             // コメントページURL
             $diary_row_array[$index]['diary_comment_url'] = $this->getControllerPath('User', 'DiaryComment') . '&id=' . $diary_row['community_id'] . '&diary_id=' . $diary_row['diary_id'];
             // 信頼済みコミュニティ(マイフレンズグループ)が定義されているか
             if ($diary_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
                 if (count($diary_row['trusted_community_row_array']) && $diary_row['trusted_community_row_array'][0]['community_type_name'] == ACSMsg::get_mst('community_type_master', 'D20')) {
                     $diary_row_array[$index]['trusted_community_flag'] = 0;
                 } else {
                     $diary_row_array[$index]['trusted_community_flag'] = 1;
                 }
             }
         }
         //---- アクセス制御 ----//
         $role_array = ACSAccessControl::get_user_community_role_array($acs_user_info_row, $target_user_info_row);
         $diary_row_array = ACSAccessControl::get_valid_row_array_for_user_community($acs_user_info_row, $role_array, $diary_row_array);
         //特別::全件検索の場合 ターゲットが自分のままになってしまうことを回避
         $diary_row_array_result = array();
         foreach ($diary_row_array as $index => $diary_row) {
             $diary_target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($diary_row['community_id']);
             $role_array = ACSAccessControl::get_user_community_role_array($acs_user_info_row, $diary_target_user_info_row);
             $is_valid_user = ACSAccessControl::is_valid_user_for_community($acs_user_info_row, $role_array, $diary_row);
             if ($is_valid_user) {
                 //アクセス権がある
                 array_push($diary_row_array_result, $diary_row);
             }
         }
         //----------------------//
     }
     // 本人のページかどうか
     if ($target_user_info_row['user_community_id'] == $acs_user_info_row['user_community_id']) {
         $is_self_page = 1;
     } else {
         $is_self_page = 0;
     }
     // set
     $this->setAttribute('target_user_info_row', $target_user_info_row);
     $this->setAttribute('diary_row_array_result', $diary_row_array_result);
     $this->setAttribute('is_self_page', $is_self_page);
     $this->setAttribute('link_page_url', $link_page_url);
     $this->setAttribute('open_level_master_row_array', $open_level_master_row_array);
     $this->setAttribute('friends_group_row_array', $friends_group_row_array);
     $this->setAttribute('err_str', $err_str);
     $this->setAttribute('form_pre', $form_pre);
     $this->setAttribute('module', $module);
     $this->setAttribute('action', $action);
     $this->setAttribute('id', $id);
     $this->setAttribute('move_id', $move_id);
     // テンプレート
     $this->setScreenId("0001");
     $this->setTemplate('SearchResultDiary.tpl.php');
     return parent::execute();
 }
예제 #30
0
 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_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 処理の種類
     $action_type = $request->getParameter('action_type');
     // get
     $form = $request->ACSGetParameters();
     // Validatorで出来ないエラーチェックを行う //
     if (mb_strlen($form['folder_name']) > 100) {
         $this->setError($controller, $request, $user, 'folder_name', ACSMsg::get_msg('User', 'EditFolderAction.class.php', 'M001'));
         return $this->handleError(&$controller, &$request, &$user);
     }
     // 表示するページの所有者情報取得
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id);
     // フォルダ情報取得
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     /* ----------------- */
     /* 入力画面表示処理 */
     /* ----------------- */
     // action_type (create or update) が存在し、エラーで遷移してきていない場合
     if (!$action_type || $this->hasErrors($controller, $request, $user)) {
         return $this->getDefaultView();
     }
     // 選択された公開範囲の判別のためのデータ取得
     $open_level_master_row_array = ACSAccessControl::get_all_open_level_master_row_array();
     /* ---------- */
     /* 入力値取得 */
     /* ---------- */
     $edit_folder_id = $request->getParameter('edit_folder_id');
     $input_folder_row = array();
     $input_folder_row['folder_name'] = $request->getParameter('folder_name');
     $input_folder_row['comment'] = $request->getParameter('comment');
     $input_folder_row['open_level_code'] = $request->getParameter('open_level_code');
     $open_level_row = $open_level_master_row_array[$input_folder_row['open_level_code']];
     $open_level_name = $open_level_row['open_level_name'];
     if ($open_level_name == ACSMsg::get_mst('open_level_master', 'D05')) {
         if ($request->getParameter('trusted_community_flag') == '0') {
             // 全ての友人をセット
             $friends_community_id = ACSUser::get_friends_community_id($target_user_community_id);
             $input_folder_row['trusted_community_id_array'] = array($friends_community_id);
         } else {
             // マイフレンズグループの場合は、指定されているマイフレンズグループIDをセット
             $input_folder_row['trusted_community_id_array'] = $request->getParameter('trusted_community');
         }
     }
     /* ---------------------- */
     /* フォルダ名重複チェック */
     /* ---------------------- */
     // 対象となるフォルダ配下のフォルダを取得
     $sub_folder_obj_array = $user_folder_obj->folder_obj->get_folder_obj_array();
     foreach ($sub_folder_obj_array as $sub_folder_obj) {
         if ($sub_folder_obj->get_folder_id() == $edit_folder_id) {
             // 更新対象のフォルダはチェック対象としない
             continue;
         }
         if ($sub_folder_obj->get_folder_name() == $input_folder_row['folder_name']) {
             // エラーメッセージをセットし、処理を中断する
             return $this->setError($controller, $request, $user, 'folder_name', ACSMsg::get_msg('User', 'EditFolderAction.class.php', 'M003') . '[' . $input_folder_row['folder_name'] . ']');
         }
     }
     ACSDB::_do_query("BEGIN");
     /* -------- */
     /* 登録処理 */
     /* -------- */
     if ($action_type == 'create') {
         $ret = $user_folder_obj->folder_obj->create_folder($input_folder_row);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK;");
             print "ERROR: フォルダを作成できませんでした。";
             exit;
         }
     } elseif ($action_type == 'update') {
         /* -------- */
         /* 更新処理 */
         /* -------- */
         // 更新対象のフォルダ情報取得
         $update_user_folder_obj = new ACSUserFolder($request->getParameter('id'), $acs_user_info_row, $edit_folder_id);
         $ret = $update_user_folder_obj->folder_obj->update_folder($input_folder_row);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK;");
             print "ERROR: フォルダ情報を変更できませんでした。";
             exit;
         }
     }
     ACSDB::_do_query("COMMIT;");
     /* -------------------- */
     /* フォルダ一覧画面表示 */
     /* -------------------- */
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $folder_action = $this->getControllerPath('User', 'Folder');
     $folder_action .= '&id=' . $target_user_info_row['user_community_id'];
     $folder_action .= '&folder_id=' . $target_user_community_folder_id;
     header("Location: {$folder_action}");
 }