> Suppose I have a bunch of projects, and I want to grant full access
> to a group, but no access to anything else.  Please don't call me
> anti-social.
> 
> /trunk/proja
> /trunk/projb
> /trunk/projc
> 
> I want to grant full access to proja to groupa, but no access to
> the others.  How can I do this?
> 
> [repo:/]
> @groupa = r
> @others = rw
> 
> [repo:/trunk/proja]
> @groupa = rw
> 
> [repo:/trunk/projb]
> @groupa =
> 
> [repo:/trunk/projc]
> @groupa =
> 
> However, this does not scale well.  When I add projd, I need to
> make sure that I remove access (@groupa=;) for all the groups that
> should not have access.  That is, I am practicing negative access
> control (deny access), which is error prone.
> 
> Is there a way for the permissions to not be recursive, so that I
> could grant @groupa access to / without it applying to /**?
> 
> We could reorg the repo (/trunk/secret and /trunk/groupa), but that
> seems like the tail wagging the dog (security issues dictating repo
> layout).
> 

How about something like:

[repo:/]
@groupa = 
@others = rw
 
[repo:/trunk/proja]
@groupa = rw
 

This way groupa has no rights to root... and rw to /trunk/proja.

I'm pretty sure this works... although there was a bug with the group being 
able to create a branch in their allowed path if they didn't have read access 
to root. However, I think this was fixed in a recent version .10 or newer 
perhaps. You can check the change logs.

If other are everyone else I think you can even do:

[repo:/]
@groupa = 
* = rw
 
[repo:/trunk/proja]
@groupa = rw

But, not sure, you would have to test.

BOb

Reply via email to