aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommi Virtanen <tv@eagain.net>2008-01-17 02:15:52 +0200
committerTommi Virtanen <tv@eagain.net>2008-01-17 02:15:52 +0200
commitb04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d (patch)
tree518436a5cb7e5ac957de567fb3aed83dd752e79c
parentFix typo that made push fail in writeAuthorizedKeys. (diff)
downloadgitosis-dakkar-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.tar.gz
gitosis-dakkar-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.tar.bz2
gitosis-dakkar-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.zip
Fix bug where members=@all didn't actually give access.
-rw-r--r--gitosis/group.py6
-rw-r--r--gitosis/test/test_access.py8
2 files changed, 13 insertions, 1 deletions
diff --git a/gitosis/group.py b/gitosis/group.py
index 975bbc5..a18a731 100644
--- a/gitosis/group.py
+++ b/gitosis/group.py
@@ -19,7 +19,11 @@ def _getMembership(config, user, seen):
else:
members = members.split()
- if user in members:
+ # @all is the only group where membership needs to be
+ # bootstrapped like this, anything else gets started from the
+ # username itself
+ if (user in members
+ or '@all' in members):
log.debug('found %(user)r in %(group)r' % dict(
user=user,
group=group,
diff --git a/gitosis/test/test_access.py b/gitosis/test/test_access.py
index 9f9d81a..751b0b4 100644
--- a/gitosis/test/test_access.py
+++ b/gitosis/test/test_access.py
@@ -78,6 +78,14 @@ def test_read_yes_map_wouldHaveWritable():
eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
None)
+def test_read_yes_all():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', '@all')
+ cfg.set('group fooers', 'readonly', 'foo/bar')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ ('repositories', 'foo/bar'))
+
def test_base_global_absolute():
cfg = RawConfigParser()
cfg.add_section('gitosis')