diff options
author | 2008-01-17 02:15:52 +0200 | |
---|---|---|
committer | 2008-01-17 02:15:52 +0200 | |
commit | b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d (patch) | |
tree | 518436a5cb7e5ac957de567fb3aed83dd752e79c | |
parent | Fix typo that made push fail in writeAuthorizedKeys. (diff) | |
download | gitosis-gentoo-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.tar.gz gitosis-gentoo-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.tar.bz2 gitosis-gentoo-b04fbb1df75c7f1f3f6bb4b4b37565f4a2ede54d.zip |
Fix bug where members=@all didn't actually give access.
-rw-r--r-- | gitosis/group.py | 6 | ||||
-rw-r--r-- | gitosis/test/test_access.py | 8 |
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') |