i592: Use full path in various places
When running mediagoblin in a sub path on a web server, most things inside mediagoblin need the "inside path", but when generating URLs for the webbrowser, full paths are needed. urlgen and routes already do that. Some (mostly pagination and login) need the URL of the current page. They used request.path_info. But this is the "inside" path, not the full. So now there is request.full_path and its used in various places.
This commit is contained in:
parent
4d7a93a493
commit
05788ef450
@ -117,6 +117,17 @@ class MediaGoblinApp(object):
|
||||
path_info = request.path_info
|
||||
route_match = self.routing.match(path_info)
|
||||
|
||||
# By using fcgi, mediagoblin can run under a base path
|
||||
# like /mediagoblin/. request.path_info contains the
|
||||
# path inside mediagoblin. If the something needs the
|
||||
# full path of the current page, that should include
|
||||
# the basepath.
|
||||
# Note: urlgen and routes are fine!
|
||||
request.full_path = environ["SCRIPT_NAME"] + request.path_info
|
||||
# python-routes uses SCRIPT_NAME. So let's use that too.
|
||||
# The other option would be:
|
||||
# request.full_path = environ["SCRIPT_URL"]
|
||||
|
||||
## Attach utilities to the request object
|
||||
request.matchdict = route_match
|
||||
request.urlgen = routes.URLGenerator(self.routing, environ)
|
||||
|
@ -45,7 +45,7 @@ def require_active_login(controller):
|
||||
return exc.HTTPFound(
|
||||
location="%s?next=%s" % (
|
||||
request.urlgen("mediagoblin.auth.login"),
|
||||
request.path_info))
|
||||
request.full_path))
|
||||
|
||||
return controller(request, *args, **kwargs)
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
{# only display if {{pagination}} is defined #}
|
||||
{% if pagination and pagination.pages > 1 %}
|
||||
{% if not base_url %}
|
||||
{% set base_url = request.path_info %}
|
||||
{% set base_url = request.full_path %}
|
||||
{% endif %}
|
||||
|
||||
{% if preserve_get_params %}
|
||||
|
@ -106,4 +106,4 @@ class Pagination(object):
|
||||
This is a nice wrapper around get_page_url_explicit()
|
||||
"""
|
||||
return self.get_page_url_explicit(
|
||||
request.path_info, request.GET, page_no)
|
||||
request.full_path, request.GET, page_no)
|
||||
|
Loading…
x
Reference in New Issue
Block a user