X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/12eb056b33e1f01a63c4fcee408c9ac0d96c6b5e..8496dd9fb405eda149995615ead0a94a83298b91:/IkiWiki/Plugin/remove.pm?ds=inline diff --git a/IkiWiki/Plugin/remove.pm b/IkiWiki/Plugin/remove.pm index f62bfb1d7..d23b2cc10 100644 --- a/IkiWiki/Plugin/remove.pm +++ b/IkiWiki/Plugin/remove.pm @@ -18,6 +18,7 @@ sub getsetup () { plugin => { safe => 1, rebuild => 0, + section => "web", }, } @@ -48,17 +49,17 @@ sub check_canremove ($$$) { # This is sorta overkill, but better safe than sorry. if (! defined pagetype($pagesources{$page})) { if (IkiWiki::Plugin::attachment->can("check_canattach")) { - IkiWiki::Plugin::attachment::check_canattach($session, $page, $file); + IkiWiki::Plugin::attachment::check_canattach($session, $page, "$config{srcdir}/$file"); } else { - error("renaming of attachments is not allowed"); + error("removal of attachments is not allowed"); } } my $canremove; IkiWiki::run_hooks(canremove => sub { return if defined $canremove; - my $ret=shift->($page, $q, $session); + my $ret=shift->(page => $page, cgi => $q, session => $session); if (defined $ret) { if ($ret eq "") { $canremove=1; @@ -73,7 +74,6 @@ sub check_canremove ($$$) { } } }); - return $canremove; } sub formbuilder_setup (@) { @@ -103,10 +103,12 @@ sub confirmation_form ($$) { javascript => 0, params => $q, action => $config{cgiurl}, - stylesheet => IkiWiki::baseurl()."style.css", + stylesheet => 1, fields => [qw{do page}], ); + $f->field(name => "sid", type => "hidden", value => $session->id, + force => 1); $f->field(name => "do", type => "hidden", value => "remove", force => 1); return $f, ["Remove", "Cancel"]; @@ -167,7 +169,7 @@ sub formbuilder (@) { removal_confirm($q, $session, 0, $form->field("page")); } elsif ($form->submitted eq "Remove Attachments") { - my @selected=$q->param("attachment_select"); + my @selected=map { Encode::decode_utf8($_) } $q->param("attachment_select"); if (! @selected) { error(gettext("Please select the attachments to remove.")); } @@ -188,7 +190,9 @@ sub sessioncgi ($$) { postremove($session); } elsif ($form->submitted eq 'Remove' && $form->validate) { - my @pages=$q->param("page"); + IkiWiki::checksessionexpiry($q, $session, $q->param('sid')); + + my @pages=$form->field("page"); # Validate removal by checking that the page exists, # and that the user is allowed to edit(/remove) it. @@ -238,7 +242,7 @@ sub sessioncgi ($$) { } } else { - removal_confirm($q, $session, 0, $q->param("page")); + removal_confirm($q, $session, 0, $form->field("page")); } exit 0;