2010-06-04 9 views
0

Je démarre un petit projet open source et j'ai déjà un référentiel et une instance Trac en cours d'exécution. J'ai installé le plugin AccountManager et j'ai le module RegistrationModule, parce que je veux que les utilisateurs puissent créer des comptes et soumettre des tickets même sans autorisations accrues (je veux aussi que les rapports de bogues soient déposés par n'importe qui).Authentification en écriture SVN à l'aide des groupes d'autorisation Trac

J'ai configuré l'accès en lecture et en écriture uniquement aux utilisateurs authentifiés. Voici une partie de mon fichier dav_svn.conf.

AuthType Basic 
AuthName "Subversion Repository" 
AuthUserFile /trac-pages/ocm/htpasswd 

# To enable authorization via mod_authz_svn 
#AuthzSVNAccessFile /etc/apache2/dav_svn.authz 

# The following three lines allow anonymous read, but make 
# committers authenticate themselves. It requires the 'authz_user' 
# module (enable it with 'a2enmod'). 
<LimitExcept GET PROPFIND OPTIONS REPORT> 
    Require valid-user 
</LimitExcept> 

Mais si quelqu'un utilise le RegistrationModule sur Trac et crée un compte, alors ils peuvent écrire au référentiel sans être donné d'autres autorisations. Je veux faire en sorte que seuls les utilisateurs du groupe "authentifié" sur Trac puissent s'engager dans le référentiel.

Répondre

0

Uhm ... Le groupe "authentifié" sur Trac contient automatiquement tous les utilisateurs connectés, y compris tous ceux qui viennent d'enregistrer un nouveau compte et de se connecter. Il semble donc que vous ayez besoin de limiter l'accès svn ces utilisateurs avec une autre permission/groupe. (Et vous pouvez créer arbitrairement de nouvelles autorisations en utilisant sample-plugins/permissions/extrapermissionsprovider.py à partir des sources Trac.)

Je ne sais pas comment vous pourriez faire pour que svn regarde Trac pour cette information.

Vous pouvez regarder dans this ou this plugin de trac-hacks pour vous permettre de gérer votre accès svn à partir de Trac. (Avertissement: je ne les ai pas utilisés.) Cela peut vous permettre de faire quelque chose de proche de ce que vous voulez.

Divulgation: Je suis l'un des développeurs de Trac.