Optimizing admin interface for user domain, completing security views

This commit is contained in:
Josako
2024-06-03 09:37:59 +02:00
parent e5a36798bf
commit fcc0caeb09
24 changed files with 523 additions and 174 deletions

View File

@@ -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