diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-10-15 19:36:48 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-10-15 19:36:48 -0400 |
commit | 1f7f5d5e0e21920c5f15290cd34594ad91077071 (patch) | |
tree | a19302c57ed6ea46c4bf05a1ed8d840725643069 /IkiWiki.pm | |
parent | 917f54a777d152ee5963acd81bf8a2800a0507b1 (diff) | |
parent | 20e691fe20ead76d826ab77501c6e9cbc7b487e8 (diff) |
Merge branch 'master' into darcs
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r-- | IkiWiki.pm | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 82370f430..633c51381 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1919,4 +1919,61 @@ sub match_creation_year ($$;@) { #{{{ } } #}}} +sub match_user ($$;@) { #{{{ + shift; + my $user=shift; + my %params=@_; + + if (! exists $params{user}) { + return IkiWiki::FailReason->new("no user specified"); + } + + if (defined $params{user} && lc $params{user} eq lc $user) { + return IkiWiki::SuccessReason->new("user is $user"); + } + elsif (! defined $params{user}) { + return IkiWiki::FailReason->new("not logged in"); + } + else { + return IkiWiki::FailReason->new("user is $params{user}, not $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; + my %params=@_; + + if (! exists $params{ip}) { + return IkiWiki::FailReason->new("no IP specified"); + } + + if (defined $params{ip} && lc $params{ip} eq lc $ip) { + return IkiWiki::SuccessReason->new("IP is $ip"); + } + else { + return IkiWiki::FailReason->new("IP is $params{ip}, not $ip"); + } +} #}}} + 1 |