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
* Patch from James Westby to add an actions option to inline; this
[git.ikiwiki.info.git]
/
IkiWiki
/
CGI.pm
diff --git
a/IkiWiki/CGI.pm
b/IkiWiki/CGI.pm
index fc5dfc2efde84d552940dda35efc511ce92e87dd..99fc5c0edf71af55e0288bf5b7b14147832aa1b6 100644
(file)
--- a/
IkiWiki/CGI.pm
+++ b/
IkiWiki/CGI.pm
@@
-9,6
+9,18
@@
use Encode;
package IkiWiki;
package IkiWiki;
+sub printheader ($) { #{{{
+ my $session=shift;
+
+ if ($config{sslcookie}) {
+ print $session->header(-charset => 'utf-8',
+ -cookie => $session->cookie(-secure => 1));
+ } else {
+ print $session->header(-charset => 'utf-8');
+ }
+
+} #}}}
+
sub redirect ($$) { #{{{
my $q=shift;
my $url=shift;
sub redirect ($$) { #{{{
my $q=shift;
my $url=shift;
@@
-31,7
+43,7
@@
sub page_locked ($$;$) { #{{{
foreach my $admin (@{$config{adminuser}}) {
my $locked_pages=userinfo_get($admin, "locked_pages");
foreach my $admin (@{$config{adminuser}}) {
my $locked_pages=userinfo_get($admin, "locked_pages");
- if (
globlist
_match($page, userinfo_get($admin, "locked_pages"))) {
+ if (
pagespec
_match($page, userinfo_get($admin, "locked_pages"))) {
return 1 if $nonfatal;
error(htmllink("", "", $page, 1)." is locked by ".
htmllink("", "", $admin, 1)." and cannot be edited.");
return 1 if $nonfatal;
error(htmllink("", "", $page, 1)." is locked by ".
htmllink("", "", $admin, 1)." and cannot be edited.");
@@
-70,10
+82,9
@@
sub cgi_recentchanges ($) { #{{{
indexlink => indexlink(),
wikiname => $config{wikiname},
changelog => [rcs_recentchanges(100)],
indexlink => indexlink(),
wikiname => $config{wikiname},
changelog => [rcs_recentchanges(100)],
- styleurl => styleurl(),
- baseurl => "$config{url}/",
+ baseurl => baseurl(),
);
);
- print $q->header(-charset
=>
'utf-8'), $template->output;
+ print $q->header(-charset
=>
'utf-8'), $template->output;
} #}}}
sub cgi_signin ($$) { #{{{
} #}}}
sub cgi_signin ($$) { #{{{
@@
-100,7
+111,7
@@
sub cgi_signin ($$) { #{{{
header => 0,
template => (-e "$config{templatedir}/signin.tmpl" ?
{template_params("signin.tmpl")} : ""),
header => 0,
template => (-e "$config{templatedir}/signin.tmpl" ?
{template_params("signin.tmpl")} : ""),
- stylesheet =>
styleurl()
,
+ stylesheet =>
baseurl()."style.css"
,
);
decode_form_utf8($form);
);
decode_form_utf8($form);
@@
-205,7
+216,7
@@
sub cgi_signin ($$) { #{{{
$form->field(name => "confirm_password", type => "hidden");
$form->field(name => "email", type => "hidden");
$form->text("Registration successful. Now you can Login.");
$form->field(name => "confirm_password", type => "hidden");
$form->field(name => "email", type => "hidden");
$form->text("Registration successful. Now you can Login.");
- print
$session->header(-charset=>'utf-8'
);
+ print
header($session
);
print misctemplate($form->title, $form->render(submit => ["Login"]));
}
else {
print misctemplate($form->title, $form->render(submit => ["Login"]));
}
else {
@@
-233,12
+244,12
@@
sub cgi_signin ($$) { #{{{
$form->text("Your password has been emailed to you.");
$form->field(name => "name", required => 0);
$form->text("Your password has been emailed to you.");
$form->field(name => "name", required => 0);
- print
$session->header(-charset=>'utf-8'
);
+ print
header($session
);
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
}
else {
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
}
else {
- print
$session->header(-charset=>'utf-8'
);
+ print
header($session
);
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
} #}}}
print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"]));
}
} #}}}
@@
-267,7
+278,7
@@
sub cgi_prefs ($$) { #{{{
action => $config{cgiurl},
template => (-e "$config{templatedir}/prefs.tmpl" ?
{template_params("prefs.tmpl")} : ""),
action => $config{cgiurl},
template => (-e "$config{templatedir}/prefs.tmpl" ?
{template_params("prefs.tmpl")} : ""),
- stylesheet =>
styleurl()
,
+ stylesheet =>
baseurl()."style.css"
,
);
my @buttons=("Save Preferences", "Logout", "Cancel");
);
my @buttons=("Save Preferences", "Logout", "Cancel");
@@
-278,9
+289,9
@@
sub cgi_prefs ($$) { #{{{
$form->field(name => "password", type => "password");
$form->field(name => "confirm_password", type => "password");
$form->field(name => "subscriptions", size => 50,
$form->field(name => "password", type => "password");
$form->field(name => "confirm_password", type => "password");
$form->field(name => "subscriptions", size => 50,
- comment => "(".htmllink("", "", "
GlobList
", 1).")");
+ comment => "(".htmllink("", "", "
PageSpec
", 1).")");
$form->field(name => "locked_pages", size => 50,
$form->field(name => "locked_pages", size => 50,
- comment => "(".htmllink("", "", "
GlobList
", 1).")");
+ comment => "(".htmllink("", "", "
PageSpec
", 1).")");
if (! is_admin($user_name)) {
$form->field(name => "locked_pages", type => "hidden");
if (! is_admin($user_name)) {
$form->field(name => "locked_pages", type => "hidden");
@@
-315,7
+326,7
@@
sub cgi_prefs ($$) { #{{{
$form->text("Preferences saved.");
}
$form->text("Preferences saved.");
}
- print
$session->header(-charset=>'utf-8'
);
+ print
header($session
);
print misctemplate($form->title, $form->render(submit => \@buttons));
} #}}}
print misctemplate($form->title, $form->render(submit => \@buttons));
} #}}}
@@
-346,12
+357,11
@@
sub cgi_editpage ($$) { #{{{
# This untaint is safe because titlepage removes any problematic
# characters.
my ($page)=$form->field('page');
# This untaint is safe because titlepage removes any problematic
# characters.
my ($page)=$form->field('page');
- $page=titlepage(possibly_foolish_untaint(
lc($page)
));
+ $page=titlepage(possibly_foolish_untaint(
$page
));
if (! defined $page || ! length $page ||
$page=~/$config{wiki_file_prune_regexp}/ || $page=~/^\//) {
error("bad page name");
}
if (! defined $page || ! length $page ||
$page=~/$config{wiki_file_prune_regexp}/ || $page=~/^\//) {
error("bad page name");
}
- $page=lc($page);
my $from;
if (defined $form->field('from')) {
my $from;
if (defined $form->field('from')) {
@@
-359,7
+369,7
@@
sub cgi_editpage ($$) { #{{{
}
my $file;
}
my $file;
- my $type;
+ my $type;
if (exists $pagesources{$page}) {
$file=$pagesources{$page};
$type=pagetype($file);
if (exists $pagesources{$page}) {
$file=$pagesources{$page};
$type=pagetype($file);
@@
-373,9
+383,7
@@
sub cgi_editpage ($$) { #{{{
# favor the type of linking page
$type=pagetype($pagesources{$from});
}
# favor the type of linking page
$type=pagetype($pagesources{$from});
}
- else {
- $type=$config{default_pageext};
- }
+ $type=$config{default_pageext} unless defined $type;
$file=$page.".".$type;
}
$file=$page.".".$type;
}
@@
-397,8
+405,7
@@
sub cgi_editpage ($$) { #{{{
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
htmllink("", "", "HelpOnFormatting", 1));
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
htmllink("", "", "HelpOnFormatting", 1));
- $form->tmpl_param("styleurl", styleurl());
- $form->tmpl_param("baseurl", "$config{url}/");
+ $form->tmpl_param("baseurl", baseurl());
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
force => 1);
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
force => 1);
@@
-416,8
+423,12
@@
sub cgi_editpage ($$) { #{{{
value => $content, force => 1);
$form->field(name => "comments",
value => $comments, force => 1);
value => $content, force => 1);
$form->field(name => "comments",
value => $comments, force => 1);
+ $config{rss}=0; # avoid preview writing an rss feed!
$form->tmpl_param("page_preview",
$form->tmpl_param("page_preview",
- htmlize($type, linkify($page, $page, filter($page, $content))));
+ htmlize($page, $type,
+ linkify($page, "",
+ preprocess($page, $page,
+ filter($page, $content)))));
}
else {
$form->tmpl_param("page_preview", "");
}
else {
$form->tmpl_param("page_preview", "");
@@
-457,7
+468,7
@@
sub cgi_editpage ($$) { #{{{
}
@page_locs = grep {
}
@page_locs = grep {
- ! exists $page
sources{lc($_)
} &&
+ ! exists $page
case{lc $_
} &&
! page_locked($_, $session, 1)
} @page_locs;
! page_locked($_, $session, 1)
} @page_locs;
@@
-485,8
+496,8
@@
sub cgi_editpage ($$) { #{{{
if (! defined $form->field('editcontent') ||
! length $form->field('editcontent')) {
my $content="";
if (! defined $form->field('editcontent') ||
! length $form->field('editcontent')) {
my $content="";
- if (exists $pagesources{
lc($page)
}) {
- $content=readfile(srcfile($pagesources{
lc($page)
}));
+ if (exists $pagesources{
$page
}) {
+ $content=readfile(srcfile($pagesources{
$page
}));
$content=~s/\n/\r\n/g;
}
$form->field(name => "editcontent", value => $content,
$content=~s/\n/\r\n/g;
}
$form->field(name => "editcontent", value => $content,
@@
-597,7
+608,7
@@
sub cgi () { #{{{
umask($oldmask);
# Everything below this point needs the user to be signed in.
umask($oldmask);
# Everything below this point needs the user to be signed in.
- if ((
! $config{anonok}
&&
+ if ((
(! $config{anonok} || $do eq 'prefs')
&&
(! defined $session->param("name") ||
! userinfo_get($session->param("name"), "regdate"))) || $do eq 'signin') {
cgi_signin($q, $session);
(! defined $session->param("name") ||
! userinfo_get($session->param("name"), "regdate"))) || $do eq 'signin') {
cgi_signin($q, $session);
@@
-617,11
+628,11
@@
sub cgi () { #{{{
cgi_prefs($q, $session);
}
elsif ($do eq 'blog') {
cgi_prefs($q, $session);
}
elsif ($do eq 'blog') {
- my $page=titlepage(
lc
($q->param('title')));
+ my $page=titlepage(
decode_utf8
($q->param('title')));
# if the page already exists, munge it to be unique
my $from=$q->param('from');
my $add="";
# if the page already exists, munge it to be unique
my $from=$q->param('from');
my $add="";
- while (exists $
oldpagemtime{
"$from/$page$add"}) {
+ while (exists $
pagecase{lc
"$from/$page$add"}) {
$add=1 unless length $add;
$add++;
}
$add=1 unless length $add;
$add++;
}