You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/10/28 15:20:45 UTC
svn commit: r1028289 - in /subversion/trunk/tools/hook-scripts:
svnperms.conf.example svnperms.py
Author: cmpilato
Date: Thu Oct 28 13:20:45 2010
New Revision: 1028289
URL: http://svn.apache.org/viewvc?rev=1028289&view=rev
Log:
Teach svnperms.py to handle nested groups (though with no forward
declarations allowed at this time).
* tools/hook-scripts/svnperms.py
(Permission.parse_groups): Interpret tokens in a group's definition
that begin with '@' as group names, and recursively expand that
group.
* tools/hook-scripts/svnperms.conf.example
Tweak the sample to demonstrate this new nested group business.
Patch by: Kyle George <kg...@tcpsoft.com>
(Tweaked by me.)
Modified:
subversion/trunk/tools/hook-scripts/svnperms.conf.example
subversion/trunk/tools/hook-scripts/svnperms.py
Modified: subversion/trunk/tools/hook-scripts/svnperms.conf.example
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/svnperms.conf.example?rev=1028289&r1=1028288&r2=1028289&view=diff
==============================================================================
--- subversion/trunk/tools/hook-scripts/svnperms.conf.example (original)
+++ subversion/trunk/tools/hook-scripts/svnperms.conf.example Thu Oct 28 13:20:45 2010
@@ -9,6 +9,8 @@
#
[groups]
group1 = user1 user2 user3
+group2 = user4 user5
+supergroup = @group1 @group2 user6
#
# Example repository control, showing allowed syntax.
@@ -20,13 +22,13 @@ group1 = user1 user2 user3
# - line breaks are accepted
#
[example1 groups]
-group2 = user9 user10
+group3 = user9 user10
[example1]
trunk/.* = *(add,remove,update) @group1,user4,user5(update)
user6,user7()
trunk/.* = user8(add,update)
-tags/[^/]+/ = @group2(add)
+tags/[^/]+/ = @group3(add)
branches/[^/]+/.* = *(add,remove,update)
#
Modified: subversion/trunk/tools/hook-scripts/svnperms.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/svnperms.py?rev=1028289&r1=1028288&r2=1028289&view=diff
==============================================================================
--- subversion/trunk/tools/hook-scripts/svnperms.py (original)
+++ subversion/trunk/tools/hook-scripts/svnperms.py Thu Oct 28 13:20:45 2010
@@ -128,7 +128,17 @@ class Permission:
def parse_groups(self, groupsiter):
for option, value in groupsiter:
- self._group[option] = value.split()
+ groupusers = []
+ for token in value.split():
+ # expand nested groups in place; no forward decls
+ if token[0] == "@":
+ try:
+ groupusers.extend(self._group[token[1:]])
+ except KeyError:
+ raise Error, "group '%s' not found" % token[1:]
+ else:
+ groupusers.append(token)
+ self._group[option] = groupusers
def parse_perms(self, permsiter):
for option, value in permsiter: