function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_member_id = $requests['target_c_member_id'];
     $target_c_commu_id = $requests['target_c_commu_id'];
     $body = $requests['body'];
     // ----------
     //--- 権限チェック
     // 自分がコミュニティ管理者
     // 自分がコミュニティ副管理者ではない
     // 自分へのメッセージ送信ではない
     // targetがコミュニティメンバー
     // すでに管理者交代依頼メッセージ送信済みではない
     // すでに副管理者要請メッセージを送信済みでない
     $status = db_common_commu_status($u, $target_c_commu_id);
     if (!$status['is_commu_admin']) {
         handle_kengen_error();
     }
     if ($status['is_commu_sub_admin']) {
         handle_kengen_error();
     }
     if ($u == $target_c_member_id) {
         handle_kengen_error();
     }
     $status = db_common_commu_status($target_c_member_id, $target_c_commu_id);
     if (!$status['is_commu_member']) {
         handle_kengen_error();
     }
     $target_c_commu_admin_confirm_list = db_commu_anatani_c_commu_admin_confirm_list4c_member_id($target_c_member_id);
     if (!empty($target_c_commu_admin_confirm_list)) {
         foreach ($target_c_commu_admin_confirm_list as $value) {
             if ($value['c_commu_id'] == $target_c_commu_id) {
                 handle_kengen_error();
             }
         }
     }
     $target_c_commu_sub_admin_confirm_list = db_commu_anatani_c_commu_sub_admin_confirm_list4c_member_id($target_c_member_id);
     if (!empty($target_c_commu_sub_admin_confirm_list)) {
         foreach ($target_c_commu_sub_admin_confirm_list as $value) {
             if ($value['c_commu_id'] == $target_c_commu_id) {
                 handle_kengen_error();
             }
         }
     }
     //---
     // 以前に送られた管理者交代要請を削除
     db_commu_delete_c_commu_admin_confirm4c_commu_id($target_c_commu_id);
     $target_c_commu_admin_confirm_id = db_commu_insert_c_commu_admin_confirm($target_c_commu_id, $target_c_member_id, $body);
     //メッセージ
     list($msg_subject, $msg_body) = create_message_commu_admin_request($u, $body, $target_c_commu_id);
     db_message_send_message_syoudaku($u, $target_c_member_id, $msg_subject, $msg_body);
     $p = array('target_c_commu_id' => $target_c_commu_id);
     openpne_redirect('pc', 'page_c_edit_member', $p);
 }
 function execute($requests)
 {
     $tail = $GLOBALS['KTAI_URL_TAIL'];
     $u = $GLOBALS['KTAI_C_MEMBER_ID'];
     // --- リクエスト変数
     $target_c_member_id = $requests['target_c_member_id'];
     $target_c_commu_id = $requests['target_c_commu_id'];
     $body = $requests['body'];
     // ----------
     //--- 権限チェック
     // コミュニティ管理者
     // 自分自身へのメッセージ送信ではない
     // すでに管理者交代依頼メッセージ送信済みではない
     // すでに副管理者要請メッセージを送信済みでない
     $status = db_common_commu_status($u, $target_c_commu_id);
     if (!$status['is_commu_admin']) {
         handle_kengen_error();
     }
     if ($u == $target_c_member_id) {
         handle_kengen_error();
     }
     $target_c_commu_admin_confirm_list = db_commu_anatani_c_commu_admin_confirm_list4c_member_id($target_c_member_id);
     if (!empty($target_c_commu_admin_confirm_list)) {
         foreach ($target_c_commu_admin_confirm_list as $value) {
             if ($value['c_commu_id'] == $target_c_commu_id) {
                 handle_kengen_error();
             }
         }
     }
     $target_c_commu_sub_admin_confirm_list = db_commu_anatani_c_commu_sub_admin_confirm_list4c_member_id($target_c_member_id);
     if (!empty($target_c_commu_sub_admin_confirm_list)) {
         foreach ($target_c_commu_sub_admin_confirm_list as $value) {
             if ($value['c_commu_id'] == $target_c_commu_id) {
                 handle_kengen_error();
             }
         }
     }
     //---
     // 以前に送られた管理者交代要請を削除
     db_commu_delete_c_commu_admin_confirm4c_commu_id($target_c_commu_id);
     $target_c_commu_admin_confirm_id = db_commu_insert_c_commu_admin_confirm($target_c_commu_id, $target_c_member_id, $body);
     list($subject, $body_disp) = create_message_commu_admin_request($u, $body, $target_c_commu_id);
     db_message_send_message_syoudaku($u, $target_c_member_id, $subject, $body_disp);
     $p = array('target_c_commu_id' => $target_c_commu_id);
     openpne_redirect('ktai', 'page_c_home', $p);
 }
Esempio n. 3
0
/**
 * 管理者交代
 *
 * @param   int $c_commu_admin_confirm
 * @param   int $u : 自分のc_membmer_id
 * @return bool
 */
function db_commu_update_c_commu_c_member_id_admin($c_commu_id, $c_member_id)
{
    $data = array('c_member_id_admin' => intval($c_member_id));
    $where = array('c_commu_id' => intval($c_commu_id));
    if (!db_update('c_commu', $data, $where)) {
        return false;
    }
    return db_commu_delete_c_commu_admin_confirm4c_commu_id($c_commu_id);
}