OSDN Git Service

add ACS webapp, sql, htdocs
[acs/acs.git] / webapp / modules / User / actions / WaitingListAction.class.php
diff --git a/webapp/modules/User/actions/WaitingListAction.class.php b/webapp/modules/User/actions/WaitingListAction.class.php
new file mode 100644 (file)
index 0000000..27ba1f1
--- /dev/null
@@ -0,0 +1,166 @@
+<?php
+// $Id: WaitingListAction.class.php,v 1.11 2006/11/20 08:44:25 w-ota Exp $
+
+class WaitingListAction extends BaseAction
+{
+       // GET
+       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;
+       }
+
+       // POST
+       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¤ò¼èÆÀ
+               $form = $request->ACSgetParameters();
+
+               // ÂÔµ¡¾ðÊó
+               $waiting_row = ACSWaiting::get_waiting_row($form['waiting_id']);
+
+               // ACSDone
+               $done_obj = new ACSDone();
+
+
+               if ($form['accept_button']) {
+                       // ¾µÇ§¥Ü¥¿¥ó²¡²¼»þ //
+                       ACSDB::_do_query("BEGIN");
+
+                       if ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master','D10')) {
+                               $ret = ACSUser::set_friends($waiting_row['community_id'], $waiting_row['waiting_community_id']);
+                       } elseif ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master','D30')) {
+                               $community_member_form = array(
+                                               'community_id' => $waiting_row['waiting_community_id'],
+                                               'user_community_id' => $waiting_row['community_id']
+                               );
+                               $ret = ACSCommunity::set_community_member($community_member_form);
+                       }
+
+                       if ($ret) {
+                               // ¾µÇ§ºÑ¤ß¤ò¥»¥Ã¥È
+                               $ret = ACSWaiting::update_waiting_waiting_status_code($form['waiting_id'], ACSMsg::get_mst('waiting_status_master','D20'), $acs_user_info_row['user_community_id'], $form['reply_message']);
+                               if ($ret) {
+                                       ACSDB::_do_query("COMMIT");
+
+                                       // À°¹çÀ­ÊÝ»ý
+                                       if ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master','D10')) {
+                                               // ¥Þ¥¤¥Õ¥ì¥ó¥ºÄɲäÎÁÐÊý¸þ¤Î½ÅÊ£¤ò²ò½ü
+                                               ACSWaiting::update_waiting_for_add_friends($waiting_row['community_id'], $waiting_row['waiting_community_id']);
+                                       } elseif ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master','D30')) {
+                                               // ¾·ÂԤνÅÊ£¤ò²ò½ü
+                                               ACSWaiting::update_waiting_for_invite_to_community($waiting_row['community_id'], $waiting_row['waiting_community_id']);
+                                               // »²²Ã¤Î½ÅÊ£¤ò²ò½ü
+                                               ACSWaiting::update_waiting_for_join_community($waiting_row['waiting_community_id'], $waiting_row['community_id']);
+                                       }
+
+                                       // ÊÖ¿®¥á¥Ã¥»¡¼¥¸
+                                       if ($form['reply_message'] != '') {
+                                               $ret = ACSWaiting::send_admission_accept_notify_mail($form['waiting_id']);
+                                       }
+
+                                       //$done_obj->set_title("$waiting_row[waiting_type_name] ¾µÇ§´°Î»");
+                                       $done_obj->set_title(
+                                                       ACSMsg::get_tag_replace(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'FIN_ADM'),
+                                                       array("{WAITING_TYPE_NAME}" => $waiting_row[waiting_type_name])));
+
+                                       $done_obj->set_message(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'M001'));
+                               } else {
+                                       $done_obj->set_message(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'M002'));
+                               }
+                       } else {
+                               ACSDB::_do_query("ROLLBACK");
+                       }
+
+               } elseif ($form['reject_button']) {
+                       // µñÈݥܥ¿¥ó²¡²¼»þ //
+                       $ret = ACSWaiting::update_waiting_waiting_status_code($form['waiting_id'], ACSMsg::get_mst('waiting_status_master','D30'), $acs_user_info_row['user_community_id']);
+                       if ($ret) {
+                               //$done_obj->set_title("$waiting_row[waiting_type_name] µñÈÝ´°Î»");
+                               $done_obj->set_title(
+                                                       ACSMsg::get_tag_replace(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'FIN_DIS'),
+                                                       array("{WAITING_TYPE_NAME}" => $waiting_row[waiting_type_name])));
+
+                               $done_obj->set_message(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'M001'));
+                       } else {
+                               $done_obj->set_message(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'M002'));
+                       }
+               }
+
+               $done_obj->add_link(ACSMsg::get_msg('User', 'WaitingListAction.class.php' ,'M003'), './');
+
+               $request->setAttribute('done_obj', $done_obj);
+               $controller->forward('Common', 'Done');
+       }
+
+       function getRequestMethods() {
+               return Request::POST;
+       }
+
+       function isSecure () {
+               return false;
+       }
+
+       function getCredential() {
+               $context = $this->getContext();
+               $controller = $context->getController();
+               $request =  $context->getRequest();
+               $user = $context->getUser();
+               
+               return array('USER_PAGE_OWNER');
+       }
+
+       function get_execute_privilege () {
+               $context = $this->getContext();
+               $user = $context->getUser();
+
+               // ËܿͤÏOK
+               if ($user->hasCredential('USER_PAGE_OWNER')) {
+                       return true;
+               }
+               return false;
+       }
+}
+
+?>