Pass src, srcfile, dest and destfile to the canrename hook.

This is not needed by the use I'm doing of it, but seems more consistent to me.
Future users of this hook may need this data to make their mind.

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2009-01-01 18:04:37 +01:00
parent 131d2d4e7c
commit e895157397
3 changed files with 12 additions and 6 deletions

View File

@ -432,11 +432,12 @@ sub canremove ($$$) {
return undef;
}
sub canrename ($$$) {
my ($page, $cgi, $session) = (shift, shift, shift);
sub canrename ($$@) {
my ($cgi, $session) = (shift, shift);
my %params = @_;
if (istranslation($page)) {
my $masterpage = masterpage($page);
if (istranslation($params{src})) {
my $masterpage = masterpage($params{src});
# Tell the difference between:
# - a translation being renamed as a consequence of its master page
# being renamed, which is allowed

View File

@ -91,7 +91,8 @@ sub check_canrename ($$$$$$) {
my $canrename;
IkiWiki::run_hooks(canrename => sub {
return if defined $canrename;
my $ret=shift->($src, $q, $session);
my $ret=shift->($q, $session, src => $src, srcfile => $srcfile,
dest => $dest, destfile => $destfile);
if (defined $ret) {
if ($ret eq "") {
$canrename=1;

View File

@ -335,7 +335,11 @@ bypass it). It works exactly like the `canedit` hook.
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.
bypass it). It works exactly like the `canedit` and `canremove` hook,
but is passed:
* a CGI object
* a session object
* the named parameters `src`, `srcfile`, `dest` and `destfile`.
### editcontent