##// END OF EJS Templates
acl: support for getting authenticated user from web server (issue298)...
Henrik Stuart -
r8846:b3077538 default
parent child Browse files
Show More
@@ -47,7 +47,7 b''
47
47
48 from mercurial.i18n import _
48 from mercurial.i18n import _
49 from mercurial import util, match
49 from mercurial import util, match
50 import getpass
50 import getpass, urllib
51
51
52 def buildmatch(ui, repo, user, key):
52 def buildmatch(ui, repo, user, key):
53 '''return tuple of (match function, list enabled).'''
53 '''return tuple of (match function, list enabled).'''
@@ -72,7 +72,15 b' def hook(ui, repo, hooktype, node=None, '
72 ui.debug(_('acl: changes have source "%s" - skipping\n') % source)
72 ui.debug(_('acl: changes have source "%s" - skipping\n') % source)
73 return
73 return
74
74
75 user = getpass.getuser()
75 user = None
76 if source == 'serve' and 'url' in kwargs:
77 url = kwargs['url'].split(':')
78 if url[0] == 'remote' and url[1].startswith('http'):
79 user = urllib.unquote(url[2])
80
81 if user is None:
82 user = getpass.getuser()
83
76 cfg = ui.config('acl', 'config')
84 cfg = ui.config('acl', 'config')
77 if cfg:
85 if cfg:
78 ui.readconfig(cfg, sections = ['acl.allow', 'acl.deny'])
86 ui.readconfig(cfg, sections = ['acl.allow', 'acl.deny'])
@@ -162,9 +162,10 b' def unbundle(repo, req):'
162 sys.stderr = sys.stdout = cStringIO.StringIO()
162 sys.stderr = sys.stdout = cStringIO.StringIO()
163
163
164 try:
164 try:
165 url = 'remote:%s:%s' % (proto,
165 url = 'remote:%s:%s:%s' % (
166 urllib.quote(
166 proto,
167 req.env.get('REMOTE_HOST', '')))
167 urllib.quote(req.env.get('REMOTE_HOST', '')),
168 urllib.quote(req.env.get('REMOTE_USER', '')))
168 try:
169 try:
169 ret = repo.addchangegroup(gen, 'serve', url)
170 ret = repo.addchangegroup(gen, 'serve', url)
170 except util.Abort, inst:
171 except util.Abort, inst:
General Comments 0
You need to be logged in to leave comments. Login now