aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSitaram Chamarty <sitaramc@gmail.com>2018-08-26 10:06:03 +0530
committerSitaram Chamarty <sitaramc@gmail.com>2018-08-27 12:04:04 +0530
commit91ce361528c905be44b8ad6aa74db9acf5638d54 (patch)
tree8b89f74fa8202bf00ec004fe9ef24278bb6e95d3 /src/commands/access
parentaccess: fix minor typo in pattern name used (diff)
downloadgitolite-gentoo-91ce361528c905be44b8ad6aa74db9acf5638d54.tar.gz
gitolite-gentoo-91ce361528c905be44b8ad6aa74db9acf5638d54.tar.bz2
gitolite-gentoo-91ce361528c905be44b8ad6aa74db9acf5638d54.zip
access: fallthru in VREFs needs fixing
Björn Kautler pointed out that for VREFs suffering fallthru, the interpretation of the result of access would be wrong. Initially, I was reluctant to make that adjustment here. The 'access' command is meant to be just a shell entry point for the access() function, nothing more, so bringing in adjustments that occur elsewhere in gitolite would not be right. But it makes automated testing for VREF rules more difficult (and VREFs are already hard enough for most people to understand), so I caved. Hopefully this won't turn into a slippery slope...
Diffstat (limited to 'src/commands/access')
-rwxr-xr-xsrc/commands/access5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/commands/access b/src/commands/access
index d354f4d..7d4a5b9 100755
--- a/src/commands/access
+++ b/src/commands/access
@@ -61,6 +61,9 @@ if ( $repo ne '%' and $user ne '%' ) {
show($ret) if $s;
+ # adjust for fallthru in VREFs
+ $ret =~ s/DENIED by fallthru/allowed by fallthru/ if $ref =~ m(^VREF/);
+
if ( $ret =~ /DENIED/ ) {
print "$ret\n" unless $q;
exit 1;
@@ -104,7 +107,7 @@ sub show {
p => skipped due to perm (W, +, etc) not matching,
D => explicitly denied,
A => explicitly allowed,
- F => denied due to fallthru (no rules matched)
+ F => fallthru; access denied for normal refs, allowed for VREFs
";