attachment: Add admin() pagespec to test if the uploading user is a wiki admin.

master
Joey Hess 2008-09-25 16:49:30 -04:00
parent 093e815440
commit e1ba137317
3 changed files with 26 additions and 0 deletions

View File

@ -311,6 +311,26 @@ sub match_user ($$;@) { #{{{
}
} #}}}
sub match_admin ($$;@) { #{{{
shift;
shift;
my %params=@_;
if (! exists $params{user}) {
return IkiWiki::FailReason->new("no user specified");
}
if (defined $params{user} && IkiWiki::is_admin($params{user})) {
return IkiWiki::SuccessReason->new("user is an admin");
}
elsif (! defined $params{user}) {
return IkiWiki::FailReason->new("not logged in");
}
else {
return IkiWiki::FailReason->new("user is not an admin");
}
} #}}}
sub match_ip ($$;@) { #{{{
shift;
my $ip=shift;

2
debian/changelog vendored
View File

@ -3,6 +3,8 @@ ikiwiki (2.66) UNRELEASED; urgency=low
* recentchanges: Fix redirects to non-page files.
* aggregate: Avoid uninitialized value warnings for pages with no recorded
ctime.
* attachment: Add admin() pagespec to test if the uploading user is a wiki
admin.
-- Joey Hess <joeyh@debian.org> Thu, 25 Sep 2008 13:45:55 -0400

View File

@ -41,6 +41,10 @@ additional tests:
Tests whether the attachment is being uploaded by a user with the
specified username. If openid is enabled, an openid can also be put here.
* adminuser()
Tests whether the attachment is being uploded by one of the wiki admins.
* ip(address)
Tests whether the attacment is being uploaded from the specified IP