hgext/acl.py
changeset 8566 744d6322b05b
parent 8225 46293a0c7e9f
child 8567 fea40a677d43
equal deleted inserted replaced
8565:268d16b2ec25 8566:744d6322b05b
    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)