Override flask's url_for

This commit is contained in:
richard-dds 2019-11-13 16:58:28 -05:00 committed by dandds
parent 7ace430dee
commit c10aedd4dc

View File

@ -2,11 +2,12 @@ import os
import re import re
from configparser import ConfigParser from configparser import ConfigParser
from datetime import datetime from datetime import datetime
from flask import Flask, request, g, session from flask import Flask, request, g, session, url_for as flask_url_for
from flask_session import Session from flask_session import Session
import redis import redis
from unipath import Path from unipath import Path
from flask_wtf.csrf import CSRFProtect from flask_wtf.csrf import CSRFProtect
from urllib.parse import urljoin
from atst.database import db from atst.database import db
from atst.assets import environment as assets_environment from atst.assets import environment as assets_environment
@ -63,6 +64,7 @@ def make_app(config):
make_flask_callbacks(app) make_flask_callbacks(app)
register_filters(app) register_filters(app)
register_jinja_globals(app)
make_csp_provider(app, config.get("CSP", "mock")) make_csp_provider(app, config.get("CSP", "mock"))
make_crl_validator(app) make_crl_validator(app)
make_mailer(app) make_mailer(app)
@ -293,3 +295,16 @@ def apply_json_logger():
"root": {"level": "INFO", "handlers": ["wsgi"]}, "root": {"level": "INFO", "handlers": ["wsgi"]},
} }
) )
def register_jinja_globals(app):
static_url = app.config.get("STATIC_URL", "/static/")
def _url_for(endpoint, **values):
if endpoint == "static":
filename = values["filename"]
return urljoin(static_url, filename)
else:
return flask_url_for(endpoint, **values)
app.jinja_env.globals["url_for"] = _url_for