OSDN Git Service

ソフト404等のレスポンスエラーコード対応
authorkgsoft <kgsoft@users.osdn.me>
Fri, 9 Feb 2018 15:12:51 +0000 (15:12 +0000)
committerkgsoft <kgsoft@users.osdn.me>
Fri, 9 Feb 2018 15:12:51 +0000 (15:12 +0000)
23 files changed:
lib/Wiki.pm
plugin/admin/AccountHandler.pm
plugin/admin/AdminLogHandler.pm
plugin/admin/AdminUserHandler.pm
plugin/admin/Login.pm
plugin/admin/UserRegisterHandler.pm
plugin/attach/AdminMIMEHandler.pm
plugin/attach/AttachHandler.pm
plugin/bbs/BBS2Handler.pm
plugin/bbs/BBSHandler.pm
plugin/bugtrack/BugStateHandler.pm
plugin/bugtrack/BugTrackHandler.pm
plugin/calendar/CalendarHandler.pm
plugin/comment/CommentHandler.pm
plugin/core/CreateWikiHandler.pm
plugin/core/Diff.pm
plugin/core/EditPage.pm
plugin/core/NewPage.pm
plugin/core/RemoveWikiHandler.pm
plugin/core/ShowPage.pm
plugin/core/Source.pm
plugin/pdf/PDFMaker.pm
plugin/rename/RenameHandler.pm

index 57fdd86..8b0fd7b 100644 (file)
@@ -8,6 +8,7 @@ use strict;
 use CGI2;
 use File::Copy;
 use File::Path;
+use HTTP::Status;
 use Wiki::DefaultStorage;
 use Wiki::HTMLParser;
 use vars qw($VERSION $DEBUG);
@@ -548,17 +549,17 @@ sub call_handler {
        my $obj = $self->get_plugin_instance($self->{"handler"}->{$action});
        
        unless(defined($obj)){
-               return $self->error("ÉÔÀµ¤Ê¥¢¥¯¥·¥ç¥ó¤Ç¤¹¡£");
+               return $self->error(RC_BAD_REQUEST, "ÉÔÀµ¤Ê¥¢¥¯¥·¥ç¥ó¤Ç¤¹¡£");
        }
        
        # ´ÉÍý¼ÔÍѤΥ¢¥¯¥·¥ç¥ó
        if($self->{"handler_permission"}->{$action}==0){
                my $login = $self->get_login_info();
                if(!defined($login)){
-                       return $self->error("¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $self->error(RC_FORBIDDEN, "¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
                        
                } elsif($login->{type}!=0){
-                       return $self->error("´ÉÍý¼Ô¸¢¸Â¤¬É¬ÍפǤ¹¡£");
+                       return $self->error(RC_FORBIDDEN, "´ÉÍý¼Ô¸¢¸Â¤¬É¬ÍפǤ¹¡£");
                }
                return $obj->do_action($self).
                       "<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">¥á¥Ë¥å¡¼¤ËÌá¤ë</a></div>";
@@ -567,7 +568,7 @@ sub call_handler {
        } elsif($self->{"handler_permission"}->{$action}==2){
                my $login = $self->get_login_info();
                if(!defined($login)){
-                       return $self->error("¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $self->error(RC_FORBIDDEN, "¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                return $obj->do_action($self).
                       "<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">¥á¥Ë¥å¡¼¤ËÌá¤ë</a></div>";
@@ -678,13 +679,23 @@ sub get_current_parser {
 #   my $wiki = shift;
 #   ...
 #   return $wiki-&gt;error(¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸);
+#     or
+#   return $wiki-&gt;error(¥¨¥é¡¼¥³¡¼¥É, ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸);
 # }
 # </pre>
 #==============================================================================
 sub error {
        my $self    = shift;
+       my $status = shift;
        my $message = shift;
        
+       if(!defined($message)){
+               $message = $status;
+               $status = undef;
+       } else {
+               printf "Status: %d\n", $status;
+       }
+       
        $self->set_title("¥¨¥é¡¼");
        $self->get_CGI->param("action","ERROR");
        
index ee90f57..a3396ab 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::admin::AccountHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -28,7 +29,7 @@ sub do_action {
                return $self->change_pass($wiki);
        }
        if(!defined($wiki->get_login_info)) {
-               return $wiki->error("¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        my $id = $wiki->get_login_info()->{id};
        
@@ -97,11 +98,11 @@ sub change_pass {
 
                # ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎÀµÅöÀ­¤Î³Îǧ
                if ( length( $pass ) < $min_length ) {
-                       return $wiki->error("¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£".
+                       return $wiki->error(RC_BAD_REQUEST, "¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£".
                                "¾¯¤Ê¤¯¤È¤â $min_length Ê¸»ú°Ê¾åÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
                }
                elsif ( $pass ne $pass_confirm ) {
-                       return $wiki->error("ÆþÎϤµ¤ì¤¿Æó¤Ä¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¹çÃפ·¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "ÆþÎϤµ¤ì¤¿Æó¤Ä¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¹çÃפ·¤Þ¤»¤ó¡£");
                }
 
                my $session = $cgi->get_session($wiki);
@@ -115,7 +116,7 @@ sub change_pass {
                $users->{$id} = &Util::md5($pass,$id)."\t$type";
                &Util::save_config_hash($wiki,$wiki->config('userdat_file'),$users);
        } else {
-               return $wiki->error("¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹¡£");
+               return $wiki->error(RC_UNAUTHORIZED, "¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹¡£");
        }
        
        $wiki->redirectURL( $wiki->create_url({ action=>"LOGIN" }) );
index 241b824..3942db5 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::admin::AdminLogHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -130,7 +131,7 @@ sub delete_log {
        my $file   = $self->get_filename_from_target($wiki,$target);
        
        if($file eq ""){
-               return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
        }
        
        unlink($wiki->config('log_dir')."/$file") or die $file."¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
@@ -152,7 +153,7 @@ sub download_log {
        my $file   = $self->get_filename_from_target($wiki,$target);
        
        if($file eq ""){
-               return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
        }
        
        print "Content-Type: text/plain\n";
index 88860e7..4624d89 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::admin::AdminUserHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -156,15 +157,15 @@ sub save_user {
        
        if(!defined($users->{$id})){
                if($id eq "" || $pass eq "" || $type eq ""){
-                       return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "ID¡¢¥Ñ¥¹¥ï¡¼¥É¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
                }
        } else {
                if($id eq "" || $type eq ""){
-                       return $wiki->error("ID¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "ID¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
                }
        }
        unless($id =~ /^[a-zA-Z0-9\-_]+$/ && (!defined($pass) || $pass =~ /^[a-zA-Z0-9\-_]+/)){
-               return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¤Ë¤ÏȾ³Ñ±Ñ¿ô»ú¤·¤«»ÈÍѤǤ­¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "ID¡¢¥Ñ¥¹¥ï¡¼¥É¤Ë¤ÏȾ³Ñ±Ñ¿ô»ú¤·¤«»ÈÍѤǤ­¤Þ¤»¤ó¡£");
        }
        
        if(defined($users->{$id})){
index 3755997..4db8522 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::admin::Login;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -50,7 +51,7 @@ sub do_action {
                                        $wiki->redirectURL($wiki->create_url({action=>"LOGIN"}));
                                }
                        } else {
-                               return $wiki->error("ID¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹¡£");
+                               return $wiki->error(RC_UNAUTHORIZED, "ID¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹¡£");
                        }
                }
        }
index 7a4cd09..a593c51 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::admin::UserRegisterHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -68,10 +69,10 @@ sub save_user {
                return $wiki->error("ÆþÎϤµ¤ì¤¿ID¤Ï¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£");
        }
        if($id eq "" || $pass eq ""){
-               return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
+               return $wiki->error(RC_BAD_REQUEST, "ID¡¢¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
        }
        unless($id =~ /^[a-zA-Z0-9\-_]+$/ && $pass =~ /^[a-zA-Z0-9\-_]+/){
-               return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¤Ë¤ÏȾ³Ñ±Ñ¿ô»ú¤·¤«»ÈÍѤǤ­¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "ID¡¢¥Ñ¥¹¥ï¡¼¥É¤Ë¤ÏȾ³Ñ±Ñ¿ô»ú¤·¤«»ÈÍѤǤ­¤Þ¤»¤ó¡£");
        }
        
        Util::sync_update_config($wiki,$wiki->config('userdat_file'),sub {
index 9f330c9..ad4b015 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::attach::AdminMIMEHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -89,7 +90,7 @@ sub add {
                #return $self->form($wiki);
                
        } else {
-               return $wiki->error("³ÈÄ¥»Ò¤ÈMIME¥¿¥¤¥×¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+               return $wiki->error(RC_BAD_REQUEST, "³ÈÄ¥»Ò¤ÈMIME¥¿¥¤¥×¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
        }
 }
 
index a886fa6..3320df0 100644 (file)
@@ -5,6 +5,7 @@
 ############################################################
 package plugin::attach::AttachHandler;
 use strict;
+use HTTP::Status;
 use plugin::attach::Files;
 #===========================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
@@ -32,13 +33,13 @@ sub do_action {
        
        if($cgi->param("UPLOAD") ne "" || $cgi->param("CONFIRM") ne "" || $cgi->param("DELETE") ne ""){
                unless($wiki->can_modify_page($pagename)){
-                       return $wiki->error("ÊÔ½¸¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+                       return $wiki->error(RC_FORBIDDEN, "ÊÔ½¸¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
                }
        }
        
        if($cgi->param("DELETE") ne ""){
                unless(&plugin::attach::Files::can_attach_delete($wiki, $pagename)){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_FORBIDDEN, "¥Õ¥¡¥¤¥ë¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
        }
        
@@ -52,17 +53,17 @@ sub do_action {
                &Jcode::convert(\$filename,'euc');
                
                if($filename eq ""){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                
                my $hundle = $cgi->upload("file");
                unless($hundle){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£");
                }
                
                my $uploadfile = $wiki->config('attach_dir')."/".&Util::url_encode($pagename).".".&Util::url_encode($filename);
                if(-e $uploadfile && !&plugin::attach::Files::can_attach_update($wiki, $pagename)){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤Î¾å½ñ¤­¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_FORBIDDEN, "¥Õ¥¡¥¤¥ë¤Î¾å½ñ¤­¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                
                open(DATA,">$uploadfile") or die $!;
@@ -107,7 +108,7 @@ sub do_action {
        } elsif($cgi->param("CONFIRM") ne ""){
                my $file = $cgi->param("file");
                if($file eq ""){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                
                my $buf = "";
@@ -127,7 +128,7 @@ sub do_action {
        } elsif($cgi->param("DELETE") ne ""){
                my $file = $cgi->param("file");
                if($file eq ""){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                
                # ¥í¥°¤Îµ­Ï¿
@@ -141,17 +142,17 @@ sub do_action {
        } else {
                my $file = $cgi->param("file");
                if($file eq ""){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_BAD_REQUEST, "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                unless($wiki->page_exists($pagename)){
-                       return $wiki->error("¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_NOT_FOUND ,"¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Þ¤»¤ó¡£");
                }
                unless($wiki->can_show($pagename)){
-                       return $wiki->error("¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
                }
                my $filepath = $wiki->config('attach_dir')."/".&Util::url_encode($pagename).".".&Util::url_encode($file);
                unless(-e $filepath){
-                       return $wiki->error("¥Õ¥¡¥¤¥ë¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_NOT_FOUND, "¥Õ¥¡¥¤¥ë¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£");
                }
                
                my $contenttype = &get_mime_type($wiki,$file);
index 16cd5c8..807cd1a 100644 (file)
@@ -5,6 +5,7 @@
 ############################################################
 package plugin::bbs::BBS2Handler;
 use strict;
+use HTTP::Status;
 #===========================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===========================================================
@@ -43,10 +44,10 @@ sub do_action {
        }
        
        if($bbsname eq ""){
-               return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
        }
        if($message eq ""){
-               return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+               return $wiki->error(RC_BAD_REQUEST, "ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
        }
        
        # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
index 8485a5a..8b0572c 100644 (file)
@@ -5,6 +5,7 @@
 ############################################################
 package plugin::bbs::BBSHandler;
 use strict;
+use HTTP::Status;
 #===========================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===========================================================
@@ -43,9 +44,9 @@ sub do_action {
        }
        
        if($page eq "" || $count eq ""){
-               return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹");
        } elsif($message eq ""){
-               return $wiki->error("ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+               return $wiki->error(RC_BAD_REQUEST, "ËÜʸ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
        }
        
        # ¥Õ¥©¡¼¥Þ¥Ã¥È¥×¥é¥°¥¤¥ó¤Ø¤ÎÂбþ
index 9867041..778ec86 100644 (file)
@@ -5,6 +5,7 @@
 ######################################################
 package plugin::bugtrack::BugStateHandler;
 use strict;
+use HTTP::Status;
 #=====================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #=====================================================
@@ -26,7 +27,7 @@ sub do_action {
        
        if($wiki->page_exists($source)){
                if(!$wiki->can_modify_page($source)){
-                       return $wiki->error("¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                my $content = $wiki->get_page($source);
                $content =~ s/(\n\*¾õÂÖ¡§)\s+(.*)/$1 $state/;
index bc73c6a..ed3f6be 100644 (file)
@@ -5,6 +5,7 @@
 ################################################################################
 package plugin::bugtrack::BugTrackHandler;
 use strict;
+use HTTP::Status;
 #===============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===============================================================================
@@ -32,11 +33,11 @@ sub do_action {
        my $time     = time();
        
        if($name eq ""){
-               return $wiki->error("̾Á°¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "̾Á°¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        } elsif($subject eq ""){
-               return $wiki->error("¥µ¥Þ¥ê¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥µ¥Þ¥ê¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        } elsif($content eq ""){
-               return $wiki->error("¥Ð¥°ÆâÍƤ¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ð¥°ÆâÍƤ¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        
        # post_name¤È¤¤¤¦¥­¡¼¤Ç¥¯¥Ã¥­¡¼¤ò¥»¥Ã¥È¤¹¤ë
index c041bc6..deaaab0 100644 (file)
@@ -5,6 +5,7 @@
 ################################################################################
 package plugin::calendar::CalendarHandler;
 use strict;
+use HTTP::Status;
 #===============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===============================================================================
@@ -298,7 +299,7 @@ sub do_action {
        }
 
        if ($name eq "" || !Util::check_numeric($year) || !Util::check_numeric($month)) {
-               return $wiki->error("¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¹¡£");
 
        } else {
                $wiki->set_title("$name/$year-$month");
index 550c0a7..9d1b57e 100644 (file)
@@ -5,6 +5,7 @@
 ############################################################
 package plugin::comment::CommentHandler;
 use strict;
+use HTTP::Status;
 #===========================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===========================================================
@@ -29,7 +30,7 @@ sub do_action {
        my $option  = $cgi->param("option");
        
        if(!$wiki->can_show($page)){
-               return $wiki->error("¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        if($name eq ""){
                $name = "̵̾¤·¤µ¤ó";
index 953f098..4f3f609 100644 (file)
@@ -6,6 +6,7 @@
 ###############################################################################
 package plugin::core::CreateWikiHandler;
 use strict;
+use HTTP::Status;
 use plugin::core::WikiList;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
@@ -34,12 +35,12 @@ sub do_action{
        if($config->{create}==1){
                if(!defined($login)){
                        $can_create = 0;
-                       #return $farm->error("Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       #return $farm->error(RC_FORBIDDEN, "Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
        } elsif($config->{create}==2){
                if(!defined($login) || $login->{type}!=0){
                        $can_create = 0;
-                       #return $farm->error("Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       #return $farm->error(RC_FORBIDDEN, "Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
        }
        
@@ -83,24 +84,24 @@ sub do_action{
                
        }else{
                if($can_create==0){
-                       return $farm->error("Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $farm->error(RC_FORBIDDEN, "Wiki¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
                
                # ÆþÎÏ¥Á¥§¥Ã¥¯
                if(!($child =~ /^[A-Za-z0-9]+$/)){
-                       return $farm->error(&Util::escapeHTML($child)."¤ÏÉÔÀµ¤Ê̾¾Î¤Ç¤¹¡£");
+                       return $farm->error(RC_BAD_REQUEST, &Util::escapeHTML($child)."¤ÏÉÔÀµ¤Ê̾¾Î¤Ç¤¹¡£");
                
                } elsif($admin_id eq ""){
-                       return $farm->error("´ÉÍý¼ÔID¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+                       return $farm->error(RC_BAD_REQUEST, "´ÉÍý¼ÔID¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
                        
                } elsif($admin_pass eq ""){
-                       return $farm->error("´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
+                       return $farm->error(RC_BAD_REQUEST, "´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
                        
                } elsif(!($admin_id =~ /^[A-Za-z0-9]+$/)){
-                       return $farm->error("´ÉÍý¼ÔID¤¬ÉÔÀµ¤Ç¤¹¡£");
+                       return $farm->error(RC_BAD_REQUEST, "´ÉÍý¼ÔID¤¬ÉÔÀµ¤Ç¤¹¡£");
                
                } elsif(!($admin_pass =~ /^[A-Za-z0-9]+$/)){
-                       return $farm->error("´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤¬ÉÔÀµ¤Ç¤¹¡£");
+                       return $farm->error(RC_BAD_REQUEST, "´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤¬ÉÔÀµ¤Ç¤¹¡£");
                
                # »ÒWiki¤Î½ÅÊ£¤ò¥Á¥§¥Ã¥¯
                } elsif($farm->wiki_exists($child)){
index 1b393f2..70850b1 100644 (file)
@@ -6,7 +6,7 @@
 package plugin::core::Diff;
 use Algorithm::Diff qw(traverse_sequences);
 use strict;
-
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -30,7 +30,7 @@ sub do_action {
                $pagename = $wiki->config("frontpage");
        }
        unless($wiki->can_show($pagename)){
-               return $wiki->error("»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        if($cgi->param('rollback') ne ''){
                return $self->rollback($wiki, $pagename, $cgi->param('rollback'));
@@ -79,7 +79,7 @@ sub rollback {
        my $page = shift;
        my $gen  = shift;
        unless($wiki->can_modify_page($page)){
-               return $wiki->error("¹¹¿·¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¹¹¿·¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        my $source = $wiki->get_backup($page,$gen);
        $wiki->save_page($page, $source);
index 5a37e28..80e879e 100644 (file)
@@ -5,7 +5,9 @@
 ###############################################################################
 package plugin::core::EditPage;
 use strict;
+use HTTP::Status;
 use plugin::core::Diff;
+
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -35,13 +37,13 @@ sub do_action {
        my $login = $wiki->get_login_info();
 
        if($pagename eq ""){
-               return $wiki->error("¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        if($pagename =~ /([\|\[\]])|^:|([^:]:[^:])/){
-               return $wiki->error("¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ­¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ­¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
        }
        if(!$wiki->can_modify_page($pagename)){
-               return $wiki->error("¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        
        #--------------------------------------------------------------------------
@@ -49,7 +51,7 @@ sub do_action {
        if($cgi->param("save") ne ""){
                if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
                        if(length($content) > $wiki->config('page_max')){
-                               return $wiki->error('¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
+                               return $wiki->error(RC_BAD_REQUEST, '¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
                        }
                }
                if($wiki->page_exists($pagename) && $cgi->param("lastmodified") != $time){
@@ -106,7 +108,7 @@ sub do_action {
        } elsif($cgi->param("diff") ne ""){
                if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
                        if(length($content) > $wiki->config('page_max')){
-                               return $wiki->error('¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
+                               return $wiki->error(RC_BAD_REQUEST, '¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
                        }
                }
                $time = $cgi->param("lastmodified");
@@ -134,7 +136,7 @@ sub do_action {
        } elsif($cgi->param("preview") ne ""){
                if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
                        if(length($content) > $wiki->config('page_max')){
-                               return $wiki->error('¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
+                               return $wiki->error(RC_BAD_REQUEST, '¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
                        }
                }
                $time = $cgi->param("lastmodified");
index 1f77b2a..880f668 100644 (file)
@@ -5,6 +5,7 @@
 ############################################################
 package plugin::core::NewPage;
 #use strict;
+use HTTP::Status;
 #===========================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #===========================================================
@@ -23,7 +24,7 @@ sub do_action {
        my $cgi = $wiki->get_CGI;
        
        if($wiki->config('accept_edit')==0 && !defined($wiki->get_login_info())){
-               return $wiki->error("¥Ú¡¼¥¸¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤ÎºîÀ®¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        
        $wiki->set_title("¿·µ¬ºîÀ®",1);
index efd958a..f3c0041 100644 (file)
@@ -6,6 +6,7 @@
 ###############################################################################
 package plugin::core::RemoveWikiHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -27,18 +28,18 @@ sub do_action {
        my $config = &Util::load_config_hash($farm,$farm->config('farmconf_file'));
        if($config->{remove}==1){
                if(!defined($login)){
-                       return $farm->error("Wiki¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $farm->error(RC_FORBIDDEN, "Wiki¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
        } elsif($config->{remove}==2){
                if(!defined($login) || $login->{type}!=0){
-                       return $farm->error("Wiki¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+                       return $farm->error(RC_FORBIDDEN, "Wiki¤Îºï½ü¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
                }
        }
        
        # Wiki¤Î¸ºß¥Á¥§¥Ã¥¯
        my $path = $farm->get_CGI()->param("path");
        unless($path =~ s|^/|| and $farm->wiki_exists($path)) {
-               return $farm->error("Wiki¤¬Â¸ºß¤·¤Þ¤»¤ó¡£");
+               return $farm->error(RC_NOT_FOUND, "Wiki¤¬Â¸ºß¤·¤Þ¤»¤ó¡£");
        }
        
        if($farm->get_CGI()->param("exec_delete") ne ""){
index 8c397f8..abdc06a 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::core::ShowPage;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -37,7 +38,7 @@ sub do_action {
                # »²¾È¸¢¸Â¤Î¥Á¥§¥Ã¥¯
                if(!$wiki->can_show($pagename)){
                        $wiki->set_title("»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó");
-                       return $wiki->error("»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+                       return $wiki->error(RC_FORBIDDEN, "»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
                }
                
                $wiki->set_title($pagename);
index 27191da..d96518c 100644 (file)
@@ -5,6 +5,7 @@
 ###############################################################################
 package plugin::core::Source;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -27,7 +28,7 @@ sub do_action {
                $pagename = $wiki->config("frontpage");
        }
        unless($wiki->can_show($pagename)){
-               return $wiki->error("»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        my $gen = $cgi->param("generation");
        my $source;
index 05d2184..807cd0e 100644 (file)
@@ -8,6 +8,7 @@ use strict;
 use lib '../../';
 use lib '../../lib';
 use plugin::pdf::PDFParser;
+use HTTP::Status;
 use URI::Escape;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
@@ -34,11 +35,11 @@ sub do_action {
        
        # ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¥Á¥§¥Ã¥¯
        unless($wiki->page_exists($pagename)){
-               return $wiki->error("¥Ú¡¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_NOT_FOUND, "¥Ú¡¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        # »²¾È¸¢¤¬¤¢¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯
        unless($wiki->can_show($pagename)){
-               return $wiki->error("¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
        }
        
        my $filename = $self->{dir}."/".&Util::url_encode($pagename).".pdf";
index e8c4766..41e7eb9 100644 (file)
@@ -6,6 +6,7 @@
 ###############################################################################
 package plugin::rename::RenameHandler;
 use strict;
+use HTTP::Status;
 #==============================================================================
 # ¥³¥ó¥¹¥È¥é¥¯¥¿
 #==============================================================================
@@ -42,29 +43,29 @@ sub do_rename {
 
        # ¥¨¥é¡¼¥Á¥§¥Ã¥¯
        if($newpagename eq ""){
-               return $wiki->error("¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó!!");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó!!");
        }
        if($newpagename =~ /[\|:\[\]]/){
-               return $wiki->error("¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ­¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
+               return $wiki->error(RC_BAD_REQUEST, "¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ­¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
        }
        if($wiki->page_exists($newpagename)){
-               return $wiki->error("´û¤Ë¥ê¥Í¡¼¥àÀè¤Î¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Þ¤¹!!");
+               return $wiki->error(RC_BAD_REQUEST, "´û¤Ë¥ê¥Í¡¼¥àÀè¤Î¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Þ¤¹!!");
        }
        if($newpagename eq $pagename){
-               return $wiki->error("Ʊ°ì¤Î¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹!!");
+               return $wiki->error(RC_BAD_REQUEST, "Ʊ°ì¤Î¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹!!");
        }
        if(!$wiki->can_modify_page($pagename) || !$wiki->can_modify_page($newpagename)){
-               return $wiki->error("¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, "¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
        }
        if($wiki->page_exists($pagename)){
                if($cgi->param("lastmodified") < $time){
-                       return $wiki->error("¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+                       return $wiki->error(RC_PRECONDITION_FAILED, "¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
                }
        }
 
        # FrontPage¤ò°ÜÆ°¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
        if($pagename eq $wiki->config("frontpage") && $do ne "copy"){
-               return $wiki->error($wiki->config("frontpage")."¤ò°ÜÆ°¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£");
+               return $wiki->error(RC_FORBIDDEN, $wiki->config("frontpage")."¤ò°ÜÆ°¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£");
        }
 
        # ¥³¥Ô¡¼½èÍý