diff --git a/mercurial/hgweb/common.py b/mercurial/hgweb/common.py index 97f44b0720e210cd9a1c88031deafc00feb933b6_bWVyY3VyaWFsL2hnd2ViL2NvbW1vbi5weQ==..02bea04b4c548bd5154ae827c58edf3b39bea2e9_bWVyY3VyaWFsL2hnd2ViL2NvbW1vbi5weQ== 100644 --- a/mercurial/hgweb/common.py +++ b/mercurial/hgweb/common.py @@ -46,7 +46,7 @@ authentication info). Return if op allowed, else raise an ErrorResponse exception.''' - user = req.env.get(r'REMOTE_USER') + user = req.remoteuser deny_read = hgweb.configlist('web', 'deny_read') if deny_read and (not user or ismember(hgweb.repo.ui, user, deny_read)): @@ -62,9 +62,9 @@ return # enforce that you can only push using POST requests - if req.env[r'REQUEST_METHOD'] != r'POST': + if req.method != 'POST': msg = 'push requires POST request' raise ErrorResponse(HTTP_METHOD_NOT_ALLOWED, msg) # require ssl by default for pushing, auth info cannot be sniffed # and replayed @@ -66,10 +66,9 @@ msg = 'push requires POST request' raise ErrorResponse(HTTP_METHOD_NOT_ALLOWED, msg) # require ssl by default for pushing, auth info cannot be sniffed # and replayed - scheme = req.env.get('wsgi.url_scheme') - if hgweb.configbool('web', 'push_ssl') and scheme != 'https': + if hgweb.configbool('web', 'push_ssl') and req.urlscheme != 'https': raise ErrorResponse(HTTP_FORBIDDEN, 'ssl required') deny = hgweb.configlist('web', 'deny_push') diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py index 97f44b0720e210cd9a1c88031deafc00feb933b6_bWVyY3VyaWFsL2hnd2ViL2hnd2ViX21vZC5weQ==..02bea04b4c548bd5154ae827c58edf3b39bea2e9_bWVyY3VyaWFsL2hnd2ViL2hnd2ViX21vZC5weQ== 100644 --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -322,7 +322,7 @@ res.headers['Content-Security-Policy'] = rctx.csp handled = wireprotoserver.handlewsgirequest( - rctx, wsgireq, req, res, self.check_perm) + rctx, req, res, self.check_perm) if handled: return res.sendresponse() @@ -380,7 +380,7 @@ # check read permissions non-static content if cmd != 'static': - self.check_perm(rctx, wsgireq, None) + self.check_perm(rctx, req, None) if cmd == '': req.qsparams['cmd'] = tmpl.cache['default'] diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py index 97f44b0720e210cd9a1c88031deafc00feb933b6_bWVyY3VyaWFsL3dpcmVwcm90b3NlcnZlci5weQ==..02bea04b4c548bd5154ae827c58edf3b39bea2e9_bWVyY3VyaWFsL3dpcmVwcm90b3NlcnZlci5weQ== 100644 --- a/mercurial/wireprotoserver.py +++ b/mercurial/wireprotoserver.py @@ -148,9 +148,9 @@ def iscmd(cmd): return cmd in wireproto.commands -def handlewsgirequest(rctx, wsgireq, req, res, checkperm): +def handlewsgirequest(rctx, req, res, checkperm): """Possibly process a wire protocol request. If the current request is a wire protocol request, the request is processed by this function. @@ -152,9 +152,8 @@ """Possibly process a wire protocol request. If the current request is a wire protocol request, the request is processed by this function. - ``wsgireq`` is a ``wsgirequest`` instance. ``req`` is a ``parsedrequest`` instance. ``res`` is a ``wsgiresponse`` instance. @@ -197,7 +196,7 @@ return True proto = httpv1protocolhandler(req, repo.ui, - lambda perm: checkperm(rctx, wsgireq, perm)) + lambda perm: checkperm(rctx, req, perm)) # The permissions checker should be the only thing that can raise an # ErrorResponse. It is kind of a layer violation to catch an hgweb diff --git a/tests/test-http-bundle1.t b/tests/test-http-bundle1.t index 97f44b0720e210cd9a1c88031deafc00feb933b6_dGVzdHMvdGVzdC1odHRwLWJ1bmRsZTEudA==..02bea04b4c548bd5154ae827c58edf3b39bea2e9_dGVzdHMvdGVzdC1odHRwLWJ1bmRsZTEudA== 100644 --- a/tests/test-http-bundle1.t +++ b/tests/test-http-bundle1.t @@ -177,7 +177,7 @@ > import base64 > from mercurial.hgweb import common > def perform_authentication(hgweb, req, op): - > auth = req.env.get('HTTP_AUTHORIZATION') + > auth = req.headers.get('Authorization') > if not auth: > raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, 'who', > [('WWW-Authenticate', 'Basic Realm="mercurial"')]) diff --git a/tests/test-http.t b/tests/test-http.t index 97f44b0720e210cd9a1c88031deafc00feb933b6_dGVzdHMvdGVzdC1odHRwLnQ=..02bea04b4c548bd5154ae827c58edf3b39bea2e9_dGVzdHMvdGVzdC1odHRwLnQ= 100644 --- a/tests/test-http.t +++ b/tests/test-http.t @@ -168,7 +168,7 @@ > import base64 > from mercurial.hgweb import common > def perform_authentication(hgweb, req, op): - > auth = req.env.get('HTTP_AUTHORIZATION') + > auth = req.headers.get('Authorization') > if not auth: > raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, 'who', > [('WWW-Authenticate', 'Basic Realm="mercurial"')]) @@ -510,7 +510,7 @@ > from mercurial import util > from mercurial.hgweb import common > def perform_authentication(hgweb, req, op): - > cookie = req.env.get('HTTP_COOKIE') + > cookie = req.headers.get('Cookie') > if not cookie: > raise common.ErrorResponse(common.HTTP_SERVER_ERROR, 'no-cookie') > raise common.ErrorResponse(common.HTTP_SERVER_ERROR, 'Cookie: %s' % cookie) diff --git a/tests/test-largefiles-wireproto.t b/tests/test-largefiles-wireproto.t index 97f44b0720e210cd9a1c88031deafc00feb933b6_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLXdpcmVwcm90by50..02bea04b4c548bd5154ae827c58edf3b39bea2e9_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLXdpcmVwcm90by50 100644 --- a/tests/test-largefiles-wireproto.t +++ b/tests/test-largefiles-wireproto.t @@ -424,7 +424,7 @@ > import base64 > from mercurial.hgweb import common > def perform_authentication(hgweb, req, op): - > auth = req.env.get('HTTP_AUTHORIZATION') + > auth = req.headers.get('Authorization') > if not auth: > raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, 'who', > [('WWW-Authenticate', 'Basic Realm="mercurial"')])