mercurial/hgweb/hgwebdir_mod.py
changeset 19032 7d31f2e42a8a
parent 18645 76ff3a715cf2
child 19906 1dba26575dba
equal deleted inserted replaced
19031:341083b02d1b 19032:7d31f2e42a8a
     8 
     8 
     9 import os, re, time
     9 import os, re, time
    10 from mercurial.i18n import _
    10 from mercurial.i18n import _
    11 from mercurial import ui, hg, scmutil, util, templater
    11 from mercurial import ui, hg, scmutil, util, templater
    12 from mercurial import error, encoding
    12 from mercurial import error, encoding
    13 from common import ErrorResponse, get_mtime, staticfile, paritygen, \
    13 from common import ErrorResponse, get_mtime, staticfile, paritygen, ismember, \
    14                    get_contact, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
    14                    get_contact, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
    15 from hgweb_mod import hgweb, makebreadcrumb
    15 from hgweb_mod import hgweb, makebreadcrumb
    16 from request import wsgirequest
    16 from request import wsgirequest
    17 import webutil
    17 import webutil
    18 
    18 
   162         if user is allowed to read the repo, else return False."""
   162         if user is allowed to read the repo, else return False."""
   163 
   163 
   164         user = req.env.get('REMOTE_USER')
   164         user = req.env.get('REMOTE_USER')
   165 
   165 
   166         deny_read = ui.configlist('web', 'deny_read', untrusted=True)
   166         deny_read = ui.configlist('web', 'deny_read', untrusted=True)
   167         if deny_read and (not user or deny_read == ['*'] or user in deny_read):
   167         if deny_read and (not user or ismember(ui, user, deny_read)):
   168             return False
   168             return False
   169 
   169 
   170         allow_read = ui.configlist('web', 'allow_read', untrusted=True)
   170         allow_read = ui.configlist('web', 'allow_read', untrusted=True)
   171         # by default, allow reading if no allow_read option has been set
   171         # by default, allow reading if no allow_read option has been set
   172         if (not allow_read) or (allow_read == ['*']) or (user in allow_read):
   172         if (not allow_read) or ismember(ui, user, allow_read):
   173             return True
   173             return True
   174 
   174 
   175         return False
   175         return False
   176 
   176 
   177     def run_wsgi(self, req):
   177     def run_wsgi(self, req):