Optimizing admin interface for user domain, completing security views
This commit is contained in:
@@ -1,7 +1,19 @@
|
||||
from flask import current_app, request, url_for
|
||||
from flask import request, current_app, url_for
|
||||
from urllib.parse import urlsplit, urlunsplit
|
||||
|
||||
|
||||
def prefixed_url_for(endpoint, **values):
|
||||
prefix = request.headers.get('X-Forwarded-Prefix', '')
|
||||
current_app.logger.debug(f'prefix: {prefix}')
|
||||
return prefix + url_for(endpoint, **values)
|
||||
scheme = request.headers.get('X-Forwarded-Proto', request.scheme)
|
||||
host = request.headers.get('Host', request.host)
|
||||
current_app.logger.debug(f'prefix: {prefix}, scheme: {scheme}, host: {host}')
|
||||
|
||||
external = values.pop('_external', False)
|
||||
generated_url = url_for(endpoint, **values)
|
||||
|
||||
if external:
|
||||
path, query, fragment = urlsplit(generated_url)[2:5]
|
||||
new_path = prefix + path
|
||||
return urlunsplit((scheme, host, new_path, query, fragment))
|
||||
else:
|
||||
return prefix + generated_url
|
||||
Reference in New Issue
Block a user