44 # # empty acl.deny = all users allowed |
44 # # empty acl.deny = all users allowed |
45 # glob pattern = user4, user5 |
45 # glob pattern = user4, user5 |
46 # ** = user6 |
46 # ** = user6 |
47 |
47 |
48 from mercurial.i18n import _ |
48 from mercurial.i18n import _ |
49 from mercurial import util |
49 from mercurial import util, match |
50 import getpass |
50 import getpass |
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).''' |
54 if not ui.has_section(key): |
54 if not ui.has_section(key): |
58 pats = [pat for pat, users in ui.configitems(key) |
58 pats = [pat for pat, users in ui.configitems(key) |
59 if user in users.replace(',', ' ').split()] |
59 if user in users.replace(',', ' ').split()] |
60 ui.debug(_('acl: %s enabled, %d entries for user %s\n') % |
60 ui.debug(_('acl: %s enabled, %d entries for user %s\n') % |
61 (key, len(pats), user)) |
61 (key, len(pats), user)) |
62 if pats: |
62 if pats: |
63 return util.matcher(repo.root, names=pats)[1] |
63 return match.match(repo.root, '', pats, [], [], 'glob') |
64 return util.never |
64 return match.never(repo.root, '') |
|
65 |
65 |
66 |
66 def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
67 def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
67 if hooktype != 'pretxnchangegroup': |
68 if hooktype != 'pretxnchangegroup': |
68 raise util.Abort(_('config error - hook type "%s" cannot stop ' |
69 raise util.Abort(_('config error - hook type "%s" cannot stop ' |
69 'incoming changesets') % hooktype) |
70 'incoming changesets') % hooktype) |