ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/2.8.x/webapp/modules/pc/do/c_admin_request_insert_c_commu_admin_confirm.php @ 3125

Last change on this file since 3125 was 3125, checked in by ogawa, 13 years ago

#870:コミュニティ管理者交代要請メッセージを2通以上送った場合、前に送ったメッセージが無効にならない

File size: 3.3 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7/**
8 * コミュニティ管理者交代依頼メッセージ送信
9 */
10class pc_do_c_admin_request_insert_c_commu_admin_confirm extends OpenPNE_Action
11{
12    function execute($requests)
13    {
14        $u = $GLOBALS['AUTH']->uid();
15
16        // --- リクエスト変数
17        $target_c_member_id = $requests['target_c_member_id'];
18        $target_c_commu_id = $requests['target_c_commu_id'];
19        // ----------
20
21        //--- 権限チェック
22        //自分がコミュニティ管理者
23        //自分がコミュニティ副管理者ではない
24        //targetがコミュニティメンバー
25        // すでに管理者交代依頼メッセージ送信済みではない
26        // すでに副管理者要請メッセージを送信済みでない
27
28        $status = db_common_commu_status($u, $target_c_commu_id);
29        if (!$status['is_commu_admin']) {
30            handle_kengen_error();
31        }
32        if ($status['is_commu_sub_admin']) {
33            handle_kengen_error();
34        }
35
36        $status = db_common_commu_status($target_c_member_id, $target_c_commu_id);
37        if (!$status['is_commu_member']) {
38            handle_kengen_error();
39        }
40
41        $target_c_commu_admin_confirm_list =
42            db_commu_anatani_c_commu_admin_confirm_list4c_member_id($target_c_member_id);
43        if (!empty($target_c_commu_admin_confirm_list)) {
44            foreach ($target_c_commu_admin_confirm_list as $value) {
45                if ($value['c_commu_id'] == $target_c_commu_id) {
46                    handle_kengen_error();
47                }
48            }
49        }
50
51        $target_c_commu_sub_admin_confirm_list =
52        db_commu_anatani_c_commu_sub_admin_confirm_list4c_member_id($target_c_member_id);
53        if (!empty($target_c_commu_sub_admin_confirm_list)) {
54            foreach ($target_c_commu_sub_admin_confirm_list as $value) {
55                if ($value['c_commu_id'] == $target_c_commu_id) {
56                    handle_kengen_error();
57                }
58            }
59        }
60        //---
61
62        // 以前に送られた管理者交代要請を削除
63        db_commu_delete_c_commu_admin_confirm4c_commu_id($target_c_commu_id);
64
65        $target_c_commu_admin_confirm_id =
66            db_commu_insert_c_commu_admin_confirm($target_c_commu_id, $target_c_member_id);
67
68        //メッセージ
69        $c_member_id_from = $u;
70        $c_member_from    = db_member_c_member4c_member_id_LIGHT($c_member_id_from);
71        $c_member_to      = $target_c_member_id;
72        $c_commu          = db_commu_c_commu4c_commu_id($target_c_commu_id);
73
74        $subject ="コミュニティ管理者交代要請メッセージ";
75        $body_disp =
76            $c_member_from['nickname']." さんから".$c_commu['name']." コミュニティの管理者交代希望メッセージが届いています。\n".
77            "\n".
78            "この要請について、承認待ちリストから承認または拒否を選択してください。\n";
79
80        db_message_send_message_syoudaku($c_member_id_from, $target_c_member_id, $subject, $body_disp);
81
82        $p = array('target_c_commu_id' => $target_c_commu_id);
83        openpne_redirect('pc', 'page_c_edit_member', $p);
84    }
85}
86?>
Note: See TracBrowser for help on using the repository browser.