From d0e0b48df42277d8b48ae94ee1af43f87752046a Mon Sep 17 00:00:00 2001 From: Mark <mark@openappstack.net> Date: Mon, 9 Sep 2019 18:41:51 +0200 Subject: [PATCH] Refactor db user store object creation --- app.py | 10 ++++------ database/database.py | 8 ++++++++ database/schema.py | 3 ++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app.py b/app.py index 2f93e11..e4750d3 100644 --- a/app.py +++ b/app.py @@ -1,13 +1,12 @@ from flask import Flask -from flask_security import Security, login_required, \ - SQLAlchemySessionUserDatastore +from flask_security import Security, login_required from flask_graphql import GraphQLView from os import environ -from database.database import db_session, init_db +from database.database import db_session, init_db, get_user_datastore from database.schema import schema -from database.models import User, Role +from database.models import User app = Flask(__name__) @@ -22,8 +21,7 @@ app.add_url_rule( ) ) -user_datastore = SQLAlchemySessionUserDatastore(db_session, - User, Role) +user_datastore = get_user_datastore() @app.teardown_appcontext def shutdown_session(exception=None): diff --git a/database/database.py b/database/database.py index c6bc09d..ca47e34 100644 --- a/database/database.py +++ b/database/database.py @@ -1,4 +1,5 @@ from sqlalchemy import create_engine +from flask_security import SQLAlchemySessionUserDatastore from os import environ from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.ext.declarative import declarative_base @@ -21,6 +22,13 @@ db_session = scoped_session(sessionmaker(autocommit=False, Base.query = db_session.query_property() +def get_user_datastore(): + from database.models import Role, User + return SQLAlchemySessionUserDatastore( + db_session, + User, + Role) + def init_db(engine=engine): # import all modules here that might define models so that # they will be registered properly on the metadata. Otherwise diff --git a/database/schema.py b/database/schema.py index c5f90de..eca2ecd 100644 --- a/database/schema.py +++ b/database/schema.py @@ -2,8 +2,9 @@ import graphene from graphene import relay from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField from database.models import User as UserModel, Application as ApplicationModel, Role as RoleModel -from database.database import scoped_session +from database.database import db_session, get_user_datastore +user_datastore = get_user_datastore() class User(SQLAlchemyObjectType): class Meta: -- GitLab