src/access.py
changeset 67 fd16d9a1234b
parent 66 2f0ea1163b9e
child 68 a88134f77486
--- a/src/access.py	Fri Mar 06 08:56:48 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-# Copyright 2008-2009 LShift Ltd
-# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
-#
-# Authors:
-# Paul Crowley <paul@lshift.net>
-# Vadim Gelfer <vadim.gelfer@gmail.com>
-#
-# This software may be used and distributed according to the terms
-# of the GNU General Public License, incorporated herein by reference.
-
-from mercurial.i18n import _
-import mercurial.util
-import mercurial.node
-
-import os
-import ruleset
-import changes
-
-class Checker(object):
-    '''acl checker.'''
-
-    def __init__(self, ui, repo):
-        self.ui = ui
-        self.repo = repo
-        
-        self.rules = ruleset.rules_from_env()
-        self.rules.set(user = os.environ['REMOTE_USER'])
-        self.rules.set(repo = os.environ['HG_REPO_PATH'])
-
-    def allow(self, ctx):
-        branch = ctx.branch()
-        if not self.rules.allow("write", branch=branch, file=None):
-            return False
-        for f in ctx.files():
-            if not self.rules.allow("write", branch=branch, file=f):
-                return False
-        return True
-
-    def check(self, ctx):
-        '''return if access allowed, raise exception if not.'''
-        if not self.allow(ctx):
-            raise mercurial.util.Abort(_('%s: access denied for changeset %s') %
-                (__name__, mercurial.node.short(ctx.node())))
-
-def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
-    if hooktype != 'pretxnchangegroup':
-        raise mercurial.util.Abort(_('config error - hook type "%s" cannot stop '
-                           'incoming changesets') % hooktype)
-    c = Checker(ui, repo)
-    for ctx in changes.changes(repo, node):
-        c.check(ctx)