]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/remove.pm
Merge remote branch 'remotes/smcv/ready/htmlbalance'
[git.ikiwiki.info.git] / IkiWiki / Plugin / remove.pm
index d23b2cc1016851ac537303f9a3438df7446f40bd..1717c8cf3759e07724098390387dedf177ddcbaa 100644 (file)
@@ -42,9 +42,6 @@ sub check_canremove ($$$) {
                error(sprintf(gettext("%s is not a file"), $file));
        }
        
-       # Must be editable.
-       IkiWiki::check_canedit($page, $q, $session);
-
        # If a user can't upload an attachment, don't let them delete it.
        # This is sorta overkill, but better safe than sorry.
        if (! defined pagetype($pagesources{$page})) {
@@ -74,6 +71,7 @@ sub check_canremove ($$$) {
                        }
                }
        });
+       return defined $canremove ? $canremove : 1;
 }
 
 sub formbuilder_setup (@) {
@@ -121,6 +119,7 @@ sub removal_confirm ($$@) {
        my @pages=@_;
 
        foreach my $page (@pages) {
+               IkiWiki::check_canedit($page, $q, $session);
                check_canremove($page, $q, $session);
        }
 
@@ -198,6 +197,7 @@ sub sessioncgi ($$) {
                        # and that the user is allowed to edit(/remove) it.
                        my @files;
                        foreach my $page (@pages) {
+                               IkiWiki::check_canedit($page, $q, $session);
                                check_canremove($page, $q, $session);
                                
                                # This untaint is safe because of the
@@ -213,8 +213,10 @@ sub sessioncgi ($$) {
                                foreach my $file (@files) {
                                        IkiWiki::rcs_remove($file);
                                }
-                               IkiWiki::rcs_commit_staged(gettext("removed"),
-                                       $session->param("name"), $ENV{REMOTE_ADDR});
+                               IkiWiki::rcs_commit_staged(
+                                       message => gettext("removed"),
+                                       session => $session,
+                               );
                                IkiWiki::enable_commit_hook();
                                IkiWiki::rcs_update();
                        }