|
|
|
@ -4,15 +4,21 @@ from datetime import datetime
|
|
|
|
|
import asyncio
|
|
|
|
|
|
|
|
|
|
from quart import Quart, url_for, jsonify, render_template, session
|
|
|
|
|
from quart_session_openid import OpenID
|
|
|
|
|
from quart_session import Session
|
|
|
|
|
from quart_keycloak import Keycloak, KeycloakAuthToken, KeycloakLogoutRequest
|
|
|
|
|
from quart_session import Session
|
|
|
|
|
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
|
|
|
|
|
import settings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app: Quart = None
|
|
|
|
|
peewee = None
|
|
|
|
|
cache = None
|
|
|
|
|
openid: OpenID = None
|
|
|
|
|
|
|
|
|
|
if settings.X_FORWARDED:
|
|
|
|
|
app.asgi_app = ProxyHeadersMiddleware(app.asgi_app, trusted_hosts=["127.0.0.1", "10.1.0.1"])
|
|
|
|
|
|
|
|
|
|
keycloak = Keycloak(app, **settings.OPENID_CFG)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def _setup_database(app: Quart):
|
|
|
|
@ -24,8 +30,6 @@ async def _setup_database(app: Quart):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def _setup_openid(app: Quart):
|
|
|
|
|
global openid
|
|
|
|
|
openid = OpenID(app, **settings.OPENID_CFG)
|
|
|
|
|
from yellow.auth import handle_user_login
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -59,13 +63,12 @@ def create_app():
|
|
|
|
|
|
|
|
|
|
@app.context_processor
|
|
|
|
|
def template_variables():
|
|
|
|
|
global openid
|
|
|
|
|
from yellow.models import User
|
|
|
|
|
current_user = session.get('user')
|
|
|
|
|
if current_user:
|
|
|
|
|
current_user = User(**current_user)
|
|
|
|
|
now = datetime.now()
|
|
|
|
|
return dict(user=current_user, url_login=openid.endpoint_name_login, year=now.year)
|
|
|
|
|
return dict(user=current_user, url_login=keycloak.endpoint_name_login, year=now.year)
|
|
|
|
|
|
|
|
|
|
@app.before_serving
|
|
|
|
|
async def startup():
|
|
|
|
|