rename: implemented new canrename hook

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2009-01-01 16:48:43 +01:00
parent 741b26aa17
commit 3316f9cc73
2 changed files with 28 additions and 0 deletions

View File

@ -87,6 +87,26 @@ sub check_canrename ($$$$$$) {
IkiWiki::Plugin::attachment::check_canattach($session, $dest, $srcfile);
}
}
my $canrename;
IkiWiki::run_hooks(canrename => sub {
return if defined $canrename;
my $ret=shift->($src, $q, $session);
if (defined $ret) {
if ($ret eq "") {
$canrename=1;
}
elsif (ref $ret eq 'CODE') {
$ret->();
$canrename=0;
}
elsif (defined $ret) {
error($ret);
$canrename=0;
}
}
});
return $canrename;
}
sub rename_form ($$$) {

View File

@ -329,6 +329,14 @@ This hook can be used to implement arbitrary access methods to control when
a page can be removed using the web interface (commits from revision control
bypass it). It works exactly like the `canedit` hook.
### canrename
hook(type => "canrename", id => "foo", call => \&canrename);
This hook can be used to implement arbitrary access methods to control when
a page can be renamed using the web interface (commits from revision control
bypass it). It works exactly like the `canedit` hook.
### editcontent
hook(type => "editcontent", id => "foo", call => \&editcontent);