Définition des permissions SVN avec Dav SVN Authz

Il semble y avoir un problème d'inheritance sur le path qui me boggling sur les ressortingctions d'access. Par exemple, si rw un access rw à un groupe / user, et je souhaite restreindre un /../../secret à aucun, il crache rapidement dans mon visage.

Voici un exemple de ce que j'essaie d'atteindre dans dav_svn.authz

 [groups] grp_W = a, b, c, g grp_X = a, d, f, e grp_Y = a, e, [/] * = @grp_Y = rw [somerepo1:/projectPot] @grp_W = rw [somerepo2:/projectKettle] @grp_X = rw 

Ce qui est attendu: grp_Y a un access rw à tous les référentiels, tandis que grp_W et grp_X ont seulement access à leurs référentiels respectifs.

Ce qui se produit: grp_Y a access à tous les référentiels, tandis que grp_W et grp_X n'ont access à rien

Si je lance la command d'access où je donne à tous access et la restreint dans chaque repository, il ignore la règle d'invalidation (décrochage des droits) et donne à tous l'access accordé au niveau racine.

Groupes sortants, il exécute la même chose avec les dispositions spécifiques à l'user; même entièrement définis tels que:

 [/] a = rw b = c = d = e = f = g = rw [somerepo1:/projectPot] a = rw b = rw c = rw d = e = rw f = g = rw [somerepo2:/projectKettle] a = rw b c d = rw e = rw f = rw g 

Ce qui donne exactement le même résultat. Selon la documentation, je suis en train de suivre tous les protocoles, ce qui est fou.

Exécuter sur Apache2 avec dav_svn

Après un tas de maux de tête, je laisse ce ralenti avec * = rw au niveau SVNParentPath . En revenant à cela, j'ai soudainement eu un coup d'obsevoir; l'ordre de lecture était le problème.

Tout d'abord, mes conventions de dénomination étaient fausses comme il se doit [<repo_name>:<path-in-repo>]

Le problème principal est que le file authz attend une command de «spécificité» où la première règle de lecture ou la correspondance disponible est appliquée. Dans mon cas, tout équivaudrait à la racine et il serait un seul et même fait. Ainsi, en inversant mon exemple de command:

 [groups] grp_W = a, b, c, g grp_X = a, d, f, e grp_Y = a, e, [ProjectPot:/] @grp_W = rw [ProjectKettle:/] @grp_X = rw [/] * = @grp_Y = rw 

le rendrait accepté et fonctionnerait comme étant porté. Ceci n'est PAS DOCUMENTÉ et, à mon avis, un snafu sérieux sur quelque chose de totalement sortingvial.

J'ai rencontré la même chose il y a pas longtime et j'ai également échoué à find une solution. Quelques règles d'alias apache pas chères et / svn: les définitions externes peuvent aider, mais si elles sont modérément compliquées, je ne pense pas pouvoir la faire aujourd'hui. WANdisco a eu un certain nombre de requests pour cette fonctionnalité et il peut avoir suffisamment d'élan pour mériter une authz améliorée avec un access non hérité et un support d'expression régulière.

Vous devez donner une URL complète pour accéder au repository qui a l'autorisation requirejse autrement pour donner une autorisation de lecture comme celle-ci.

 [groups] grp_W = a, b, c, g grp_X = a, d, f, e grp_Y = a, e, [/] * = @grp_Y = rw @grp_w = r @grp_x = r [somerepo1:/projectPot] @grp_W = rw [somerepo2:/projectKettle] @grp_X = rw