1 ###############################################################################
3 # ¥í¥°¥Õ¥¡¥¤¥ë¤ò´ÉÍý¤¹¤ë¥â¥¸¥å¡¼¥ë
5 ###############################################################################
6 package plugin::admin::AdminLogHandler;
9 #==============================================================================
11 #==============================================================================
15 return bless $self,$class;
18 #==============================================================================
19 # ¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¥á¥½¥Ã¥É
20 #==============================================================================
24 my $cgi = $wiki->get_CGI;
25 my $login = $wiki->get_login_info();
27 if($cgi->param("delete")){
28 return $self->delete_log($wiki);
30 } elsif($cgi->param("download")){
31 $self->download_log($wiki);
33 } elsif($cgi->param("deletecache")){
34 return $self->delete_cache($wiki);
37 return $self->log_info($wiki);
41 #==============================================================================
42 # ¥í¥°¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤òɽ¼¨
43 #==============================================================================
49 $wiki->set_title("¥í¥°¥Õ¥¡¥¤¥ë¤Î´ÉÍý");
51 $buf .= $self->make_log_form($wiki,"¥¢¥¯¥»¥¹¥í¥°","access");
52 $buf .= $self->make_log_form($wiki,"źÉÕ¥Õ¥¡¥¤¥ë¤Î¥í¥°","attach");
53 $buf .= $self->make_log_form($wiki,"źÉÕ¥Õ¥¡¥¤¥ë¥À¥¦¥ó¥í¡¼¥É¿ô¤Î¥í¥°","download");
54 $buf .= "<p>¢¨¤³¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤ÈźÉÕ¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¿ô¤¬¥¯¥ê¥¢¤µ¤ì¤Þ¤¹¡£</p>\n";
55 $buf .= $self->make_log_form($wiki,"¥Ú¡¼¥¸Åà·ë¤Î¥í¥°","freeze");
56 $buf .= "<p>¢¨¤³¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤ÈÁ´¤Æ¤Î¥Ú¡¼¥¸Åà·ë¤¬²ò½ü¤µ¤ì¤Þ¤¹¡£</p>\n";
58 # ¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤Î¾ðÊó
59 $buf .= "<h2>¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë</h2>\n";
61 if($wiki->config("log_dir") ne ""){
62 opendir(DIR,$wiki->config("log_dir")) or die $wiki->config("log_dir")."¤Î¥ª¡¼¥×¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
63 while(my $entry = readdir(DIR)){
64 if($entry =~ /\.cache$/){
65 push(@cachefiles,$entry);
72 $buf .= "<p>¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£</p>\n";
75 @cachefiles = sort(@cachefiles);
77 my @status = stat($wiki->config("log_dir")."/".$_);
78 my $size = @status[7] / 1024;
79 $size = ($size==int($size) ? $size : int($size + 1));
81 $buf .= "<li>".&Util::escapeHTML($_)."(".$size."KB)</li>\n";
84 $buf .= "<form action=\"\" method=\"POST\">\n".
85 " <input type=\"submit\" name=\"deletecache\" value=\"¥¥ã¥Ã¥·¥å¤òºï½ü\">\n".
86 " <input type=\"hidden\" name=\"action\" value=\"ADMINLOG\">\n".
93 #==============================================================================
94 # ¥í¥°¥Õ¥¡¥¤¥ë¤Î¾ðÊóɽ¼¨¤ÈÁàºî¤ò¹Ô¤¦¥Õ¥©¡¼¥à¤ò½ÐÎϤ¹¤ë´Ø¿ô
95 #==============================================================================
101 my $file = $self->get_filename_from_target($wiki,$target);
103 my $buf .= "<h2>".&Util::escapeHTML($name)."</h2>\n";
105 if(-e $wiki->config('log_dir')."/$file"){
106 my @status = stat($wiki->config('log_dir')."/$file");
107 my $size = @status[7] / 1024;
109 $size = ($size==int($size) ? $size : int($size + 1));
110 $buf .= "<p>".&Util::escapeHTML($file)."(".$size."KB)</p>\n".
111 "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n".
112 " <input type=\"submit\" name=\"download\" value=\"¥À¥¦¥ó¥í¡¼¥É\">\n".
113 " <input type=\"submit\" name=\"delete\" value=\"¥Õ¥¡¥¤¥ëºï½ü\">\n".
114 " <input type=\"hidden\" name=\"target\" value=\"$target\">\n".
115 " <input type=\"hidden\" name=\"action\" value=\"ADMINLOG\">\n".
118 $buf .= "<p>¥í¥°¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£</p>\n";
124 #==============================================================================
126 #==============================================================================
130 my $target = $wiki->get_CGI->param("target");
131 my $file = $self->get_filename_from_target($wiki,$target);
134 return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
137 unlink($wiki->config('log_dir')."/$file") or die $file."¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
139 return $wiki->redirectURL( $wiki->create_url({ action=>"ADMINLOG"}) );
141 #$wiki->set_title("¥í¥°¥Õ¥¡¥¤¥ë¤Î´ÉÍý");
142 #return "<p>¥í¥°¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤·¤¿¡£</p>\n".
143 # "<p>[<a href=\"".$wiki->config('script_name')."?action=ADMINLOG\">Ìá¤ë</a>]</p>\n";
146 #==============================================================================
147 # ¥í¥°¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É
148 #==============================================================================
152 my $target = $wiki->get_CGI->param("target");
153 my $file = $self->get_filename_from_target($wiki,$target);
156 return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
159 print "Content-Type: text/plain\n";
160 print "Content-Disposition: inline;filename=\"".&Jcode::convert($file,"sjis")."\"\n\n";
161 open(LOG,$wiki->config('log_dir')."/$file") or die $file."¤Î¥ª¡¼¥×¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
163 while(<LOG>){ print $_; }
169 #==============================================================================
170 # ¥í¥°¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ¤¹¤ë´Ø¿ô
171 #==============================================================================
172 sub get_filename_from_target {
176 if($target eq "access"){
177 return $wiki->config('access_log_file');
178 } elsif($target eq "attach"){
179 return $wiki->config('attach_log_file');
180 } elsif($target eq "freeze"){
181 return $wiki->config('freeze_file');
182 } elsif($target eq "download"){
183 return $wiki->config('download_count_file');
189 #==============================================================================
190 # ¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤òºï½ü
191 #==============================================================================
196 unlink glob($wiki->config("log_dir")."/*.cache") or die "¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
198 return $wiki->redirectURL( $wiki->create_url({ action=>"ADMINLOG"}) );
200 #$wiki->set_title("¥í¥°¥Õ¥¡¥¤¥ë¤Î´ÉÍý");
201 #return "<p>¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤·¤¿¡£</p>\n".
202 # "<p>[<a href=\"".$wiki->config('script_name')."?action=ADMINLOG\">Ìá¤ë</a>]</p>\n";