Index: svn_authz.py =================================================================== --- svn_authz.py (revision 4326) +++ svn_authz.py (working copy) @@ -31,6 +31,8 @@ authz_module_name = Option('trac', 'authz_module_name', '', """The module prefix used in the authz_file.""") + authz_username_map = Option('trac', 'authz_username_map', '', + """Path to a username map to translate authname into svn accounts.""") def SubversionAuthorizer(env, repos, authname): authz_file = env.config.get('trac', 'authz_file') @@ -38,8 +40,17 @@ return Authorizer() module_name = env.config.get('trac', 'authz_module_name') - return RealSubversionAuthorizer(repos, authname, module_name, authz_file) + map_file = env.config.get('trac', 'authz_username_map') + if map_file: + from ConfigParser import ConfigParser + authz_map = ConfigParser() + authz_map.read(map_file) + if authz_map.has_option('users', authname): + authname = authz_map.get('users', authname) + + return RealSubversionAuthorizer(repos, authname, module_name, authz_file, None) + def parent_iter(path): path = path.strip('/') if path: