IkiWiki::Plugin::attachment::check_canattach($session, $page, $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 => $page, cgi => $q, session => $session);
+ if (defined $ret) {
+ if ($ret eq "") {
+ $canremove=1;
+ }
+ elsif (ref $ret eq 'CODE') {
+ $ret->();
+ $canremove=0;
+ }
+ elsif (defined $ret) {
+ error($ret);
+ $canremove=0;
+ }
+ }
+ });
}
sub formbuilder_setup (@) {
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."));
}
postremove($session);
}
elsif ($form->submitted eq 'Remove' && $form->validate) {
- my @pages=$q->param("page");
+ my @pages=$form->field("page");
# Validate removal by checking that the page exists,
# and that the user is allowed to edit(/remove) it.
}
}
else {
- removal_confirm($q, $session, 0, $q->param("page"));
+ removal_confirm($q, $session, 0, $form->field("page"));
}
exit 0;