From d6b98132c5ac7f8ceb957962f33036f1fe65172f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20B=C3=B6ttcher?= <c.boettcher@fz-juelich.de> Date: Mon, 6 Mar 2023 10:36:31 +0100 Subject: [PATCH] check integration via blueprint and single view --- plugins/unity_integration.py | 43 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/plugins/unity_integration.py b/plugins/unity_integration.py index 210af5a..53735b7 100644 --- a/plugins/unity_integration.py +++ b/plugins/unity_integration.py @@ -1,6 +1,6 @@ import os, random, string from authlib.integrations.flask_client import OAuth -from flask import url_for, redirect, current_app as app +from flask import url_for, redirect, current_app as app, Blueprint from flask_login import login_user from flask_appbuilder import expose, BaseView as AppBuilderBaseView from airflow.plugins_manager import AirflowPlugin @@ -26,16 +26,17 @@ oauth.register( ) -class UnityIntegrationLoginView(AppBuilderBaseView): - #@expose("/unity_login") - @app.route('/unity_login') - def unity_login(): - redirect_uri = url_for('unity_authorize', _external=True) +unity = Blueprint('unity', __name__, url_prefix="/unity") + +class UnityIntegrationView(AppBuilderBaseView): + + @unity.route('/login') + def login(): + redirect_uri = url_for('authorize', _external=True) return oauth.unity.authorize_redirect(redirect_uri) -class UnityIntegrationAuthView(AppBuilderBaseView): - #@expose("/unity_authorize") - @app.route('/unity_authorize') - async def unity_authorize(): + + @unity.route('/authorize') + async def authorize(): token = await oauth.unity.authorize_access_token() user = await oauth.unity.userinfo(token=token) # get relevant data from token @@ -65,21 +66,21 @@ class UnityIntegrationAuthView(AppBuilderBaseView): # login as that user login_user(fab_user, remember=False) return redirect('/') + + @unity.route('/logout') + def logout(): + pass -v_unity_login_view = UnityIntegrationLoginView() -v_unity_login_package = { - "name": "Unity Login View", - "category": "Unity Integration", - "view": v_unity_login_view, -} -v_unity_auth_view = UnityIntegrationAuthView() -v_unity_auth_package = { - "name": "Unity Auth View", +v_unity_view = UnityIntegrationView() +v_unity_package = { + "name": "Unity SSO View", "category": "Unity Integration", - "view": v_unity_auth_view, + "view": v_unity_view, } + class UnityIntegrationPlugin(AirflowPlugin): name = "unity_integration" - appbuilder_views = [v_unity_auth_package, v_unity_login_package] \ No newline at end of file + appbuilder_views = [v_unity_package] + flask_blueprints = [unity] \ No newline at end of file -- GitLab