OSDN Git Service

7ad15a84c1e31b66df3aba3dfabe900595aa9a0b
[acs/acs.git] / webapp / modules / User / actions / RestoreHistoryFileAction.class.php
1 <?php
2 // ÍúÎò¥Õ¥¡¥¤¥ëÉü³è
3 // $Id: RestoreHistoryFileAction.class.php,v 1.2 2006/11/20 08:44:25 w-ota Exp $
4
5 class RestoreHistoryFileAction extends BaseAction
6 {
7         // GET
8         function getDefaultView() {
9                 $context = $this->getContext();
10                 $controller = $context->getController();
11                 $request =  $context->getRequest();
12                 $user = $context->getUser();
13
14                 $acs_user_info_row = $user->getAttribute('acs_user_info_row');
15                 $target_user_community_id = $request->getParameter('id');
16                 $target_user_community_folder_id = $request->getParameter('folder_id');
17                 $file_id = $request->getParameter('file_id');
18                 $file_history_id = $request->getParameter('file_history_id');
19
20                 if (!$this->get_execute_privilege()) {
21                         $controller->forward(SECURE_MODULE, SECURE_ACTION);
22                         return;
23                 }
24                 
25                 $file_info_row = ACSFileInfoModel::select_file_info_row($file_id);
26                 $file_history_row = ACSFileHistory::get_file_history_row($file_history_id);
27
28                 // set
29                 $request->setAttribute('file_info_row', $file_info_row);
30                 $request->setAttribute('file_history_row', $file_history_row);
31
32                 return View::SUCCESS;
33         }
34
35         // POST
36         function execute() {
37                 $context = $this->getContext();
38                 $controller = $context->getController();
39                 $request =  $context->getRequest();
40                 $user = $context->getUser();
41                 
42                 $acs_user_info_row               = $user->getAttribute('acs_user_info_row');
43                 $target_user_community_id        = $request->getParameter('id');
44                 $target_user_community_folder_id = $request->getParameter('folder_id');
45                 $file_id = $request->getParameter('file_id');
46                 $file_history_id = $request->getParameter('file_history_id');
47
48                 if (!$this->get_execute_privilege()) {
49                         $controller->forward(SECURE_MODULE, SECURE_ACTION);
50                         return;
51                 }
52                 
53                 $file_info_row = ACSFileInfoModel::select_file_info_row($file_id);
54                 $file_history_row = ACSFileHistory::get_file_history_row($file_history_id);
55
56                 // form
57                 $form = $request->ACSGetParameters();
58
59                 // ¥Õ¥¡¥¤¥ëÉü³è½èÍý
60
61                 // ¥Õ¥©¥ë¥Àobj
62                 $user_folder_obj = new ACSUserFolder($target_user_community_id,
63                                                                                          $acs_user_info_row,
64                                                                                          $target_user_community_folder_id);
65                 $folder_obj = $user_folder_obj->get_folder_obj();
66
67                 // file_info¹¹¿·
68                 $ret = $folder_obj->restore_history_file($file_info_row, $file_history_row);
69
70                 if (!$ret) {
71                         print "ERROR: Restore file failed.";
72                 }
73
74                 // ¥Õ¥¡¥¤¥ëÍúÎò¾ðÊóÅÐÏ¿
75                 if ($ret) {
76                         $file_info_row = ACSFileInfoModel::select_file_info_row($file_id);
77                         $ret = ACSFileHistory::set_file_history($file_info_row, $acs_user_info_row['user_community_id'], $form['comment'], ACSMsg::get_mst('file_history_operation_master','D0301'));
78                 }
79
80                 // ¥Õ¥¡¥¤¥ë¾ÜºÙ¾ðÊó¤ØÁ«°Ü
81                 $file_detail_url = $this->getControllerPath('User', 'FileDetail');
82                 $file_detail_url .= '&id=' . $target_user_community_id;
83                 $file_detail_url .= '&file_id=' . $file_id;
84                 $file_detail_url .= '&folder_id=' . $target_user_community_folder_id;
85                 header("Location: $file_detail_url");
86         }
87
88         function getRequestMethods () {
89                 return Request::POST;
90         }
91
92         function isSecure () {
93                 return false;
94         }
95
96         function getCredential() {
97                 return array('USER_PAGE_OWNER');
98         }
99
100         function get_execute_privilege () {
101                 $context = $this->getContext();
102                 $user = $context->getUser();
103
104                 // Èó¥í¥°¥¤¥ó¥æ¡¼¥¶¡¢ËܿͰʳ°¤ÏNG
105                 if ($user->hasCredential('PUBLIC_USER')
106                                  || !$user->hasCredential('USER_PAGE_OWNER')) {
107                         return false;
108                 }
109                 return true;
110         }
111 }
112
113 ?>