D2736: hgweb: use the parsed application path directly
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Fri Mar 9 14:29:55 EST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG328d665ef23d: hgweb: use the parsed application path directly (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D2736?vs=6742&id=6781
REVISION DETAIL
https://phab.mercurial-scm.org/D2736
AFFECTED FILES
mercurial/hgweb/hgweb_mod.py
mercurial/hgweb/request.py
CHANGE DETAILS
diff --git a/mercurial/hgweb/request.py b/mercurial/hgweb/request.py
--- a/mercurial/hgweb/request.py
+++ b/mercurial/hgweb/request.py
@@ -146,14 +146,13 @@
# root. We also exclude its path components from PATH_INFO when resolving
# the dispatch path.
- # TODO the use of trailing slashes in apppath is arguably wrong. We need it
- # to appease low-level parts of hgweb_mod for now.
apppath = env['SCRIPT_NAME']
- if not apppath.endswith('/'):
- apppath += '/'
if env.get('REPO_NAME'):
- apppath += env.get('REPO_NAME') + '/'
+ if not apppath.endswith('/'):
+ apppath += '/'
+
+ apppath += env.get('REPO_NAME')
if 'PATH_INFO' in env:
dispatchparts = env['PATH_INFO'].strip('/').split('/')
diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -148,7 +148,7 @@
logourl = self.config('web', 'logourl')
logoimg = self.config('web', 'logoimg')
staticurl = (self.config('web', 'staticurl')
- or pycompat.sysbytes(wsgireq.url) + 'static/')
+ or req.apppath + '/static/')
if not staticurl.endswith('/'):
staticurl += '/'
@@ -170,24 +170,24 @@
if not self.reponame:
self.reponame = (self.config('web', 'name', '')
or wsgireq.env.get('REPO_NAME')
- or wsgireq.url.strip(r'/') or self.repo.root)
+ or req.apppath or self.repo.root)
def websubfilter(text):
return templatefilters.websub(text, self.websubtable)
# create the templater
# TODO: export all keywords: defaults = templatekw.keywords.copy()
defaults = {
- 'url': pycompat.sysbytes(wsgireq.url),
+ 'url': req.apppath + '/',
'logourl': logourl,
'logoimg': logoimg,
'staticurl': staticurl,
'urlbase': req.advertisedbaseurl,
'repo': self.reponame,
'encoding': encoding.encoding,
'motd': motd,
'sessionvars': sessionvars,
- 'pathdef': makebreadcrumb(pycompat.sysbytes(wsgireq.url)),
+ 'pathdef': makebreadcrumb(req.apppath),
'style': style,
'nonce': self.nonce,
}
@@ -318,8 +318,6 @@
if h[0] != 'Content-Security-Policy']
wsgireq.headers.append(('Content-Security-Policy', rctx.csp))
- wsgireq.url = pycompat.sysstr(req.apppath)
-
if r'PATH_INFO' in wsgireq.env:
parts = wsgireq.env[r'PATH_INFO'].strip(r'/').split(r'/')
repo_parts = wsgireq.env.get(r'REPO_NAME', r'').split(r'/')
To: indygreg, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list