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
from configparser import ConfigParser
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
import redis
from unipath import Path
from flask_wtf.csrf import CSRFProtect
from urllib.parse import urljoin
from atst.database import db
from atst.assets import environment as assets_environment
@ -63,6 +64,7 @@ def make_app(config):
make_flask_callbacks(app)
register_filters(app)
register_jinja_globals(app)
make_csp_provider(app, config.get("CSP", "mock"))
make_crl_validator(app)
make_mailer(app)
@ -293,3 +295,16 @@ def apply_json_logger():
"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