Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Release 3.20141016.2
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
getsource.pm
diff --git
a/IkiWiki/Plugin/getsource.pm
b/IkiWiki/Plugin/getsource.pm
index 1b7eb56c67f5cfb3ed04e93df49d8c01fb47be02..0a21413bdb9f9cdd591c93cf1785a3e4993d556e 100644
(file)
--- a/
IkiWiki/Plugin/getsource.pm
+++ b/
IkiWiki/Plugin/getsource.pm
@@
-17,6
+17,7
@@
sub getsetup () {
plugin => {
safe => 1,
rebuild => 1,
plugin => {
safe => 1,
rebuild => 1,
+ section => "web",
},
getsource_mimetype => {
type => "string",
},
getsource_mimetype => {
type => "string",
@@
-42,23
+43,25
@@
sub pagetemplate (@) {
sub cgi_getsource ($) {
my $cgi=shift;
sub cgi_getsource ($) {
my $cgi=shift;
- # Note: we use sessioncgi rather than just cgi
- # because we need $IkiWiki::pagesources{} to be
- # populated.
-
- return unless (defined $cgi->param('do') &&
- $cgi->param("do") eq "getsource");
+ return unless defined $cgi->param('do') &&
+ $cgi->param("do") eq "getsource";
IkiWiki::decode_cgi_utf8($cgi);
my $page=$cgi->param('page');
IkiWiki::decode_cgi_utf8($cgi);
my $page=$cgi->param('page');
+ if (! defined $page || $page !~ /$config{wiki_file_regexp}/) {
+ error("invalid page parameter");
+ }
+
+ # For %pagesources.
IkiWiki::loadindex();
IkiWiki::loadindex();
- if (! exists $
IkiWiki::
pagesources{$page}) {
+ if (! exists $pagesources{$page}) {
IkiWiki::cgi_custom_failure(
IkiWiki::cgi_custom_failure(
- $cgi->header(-status => "404 Not Found"),
- IkiWiki::misctemplate(gettext("missing page"),
+ $cgi,
+ "404 Not Found",
+ IkiWiki::cgitemplate($cgi, gettext("missing page"),
"<p>".
sprintf(gettext("The page %s does not exist."),
htmllink("", "", $page)).
"<p>".
sprintf(gettext("The page %s does not exist."),
htmllink("", "", $page)).
@@
-66,10
+69,10
@@
sub cgi_getsource ($) {
exit;
}
exit;
}
- if (! defined pagetype($
IkiWiki::
pagesources{$page})) {
+ if (! defined pagetype($pagesources{$page})) {
IkiWiki::cgi_custom_failure(
$cgi->header(-status => "403 Forbidden"),
IkiWiki::cgi_custom_failure(
$cgi->header(-status => "403 Forbidden"),
- IkiWiki::
misctemplate(
gettext("not a page"),
+ IkiWiki::
cgitemplate($cgi,
gettext("not a page"),
"<p>".
sprintf(gettext("%s is an attachment, not a page."),
htmllink("", "", $page)).
"<p>".
sprintf(gettext("%s is an attachment, not a page."),
htmllink("", "", $page)).
@@
-77,18
+80,14
@@
sub cgi_getsource ($) {
exit;
}
exit;
}
- my $data = IkiWiki::readfile(IkiWiki::srcfile($IkiWiki::pagesources{$page}));
-
if (! $config{getsource_mimetype}) {
$config{getsource_mimetype} = "text/plain; charset=utf-8";
}
print "Content-Type: $config{getsource_mimetype}\r\n";
if (! $config{getsource_mimetype}) {
$config{getsource_mimetype} = "text/plain; charset=utf-8";
}
print "Content-Type: $config{getsource_mimetype}\r\n";
-
print ("\r\n");
print ("\r\n");
+ print readfile(srcfile($pagesources{$page}));
- print $data;
-
exit 0;
}
exit 0;
}