OSDN Git Service

add ACS webapp, sql, htdocs
[acs/acs.git] / webapp / modules / User / actions / MessageShowAction.class.php
diff --git a/webapp/modules/User/actions/MessageShowAction.class.php b/webapp/modules/User/actions/MessageShowAction.class.php
new file mode 100644 (file)
index 0000000..44b9650
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+/**
+ * ¥á¥Ã¥»¡¼¥¸¡¡¾ÜºÙ¡¡Action¥¯¥é¥¹
+ * 
+ * MessageShowAction.class.php
+ * @package  acs/webapp/module/User/Action
+ * @author   nakau                                      
+ * @since      PHP 4.0
+ */
+// $Id: MessageShowAction.class.php,v 1.1 2008/03/24 07:09:27 y-yuki Exp $
+
+class MessageShowAction extends BaseAction
+{
+       // GET
+       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;
+       }
+       
+       function getRequestMethods() {
+               return Request::POST;
+       }
+       
+       function execute() {
+               
+       }
+
+       function isSecure () {
+               return false;
+       }
+
+       function getCredential() {
+               return array('USER_PAGE_OWNER');
+       }
+
+       function get_execute_privilege () {
+               $context = $this->getContext();
+               $user = $context->getUser();
+
+               // Èó¥í¥°¥¤¥ó¥æ¡¼¥¶¡¢ËܿͰʳ°¤ÏNG
+               if ($user->hasCredential('PUBLIC_USER')){
+                       return 2;
+               }
+                if (!$user->hasCredential('USER_PAGE_OWNER')) {
+                       return 1;
+                }
+               return 0;
+/*
+               if ($user->hasCredential('PUBLIC_USER')
+                                || !$user->hasCredential('USER_PAGE_OWNER')) {
+                       return false;
+               }
+               return true;
+*/
+       }
+
+}
+?>