Skip to content
Snippets Groups Projects
Verified Commit d0e0b48d authored by Mark's avatar Mark
Browse files

Refactor db user store object creation

parent ae2aeec8
No related branches found
No related tags found
No related merge requests found
from flask import Flask from flask import Flask
from flask_security import Security, login_required, \ from flask_security import Security, login_required
SQLAlchemySessionUserDatastore
from flask_graphql import GraphQLView from flask_graphql import GraphQLView
from os import environ 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.schema import schema
from database.models import User, Role from database.models import User
app = Flask(__name__) app = Flask(__name__)
...@@ -22,8 +21,7 @@ app.add_url_rule( ...@@ -22,8 +21,7 @@ app.add_url_rule(
) )
) )
user_datastore = SQLAlchemySessionUserDatastore(db_session, user_datastore = get_user_datastore()
User, Role)
@app.teardown_appcontext @app.teardown_appcontext
def shutdown_session(exception=None): def shutdown_session(exception=None):
......
from sqlalchemy import create_engine from sqlalchemy import create_engine
from flask_security import SQLAlchemySessionUserDatastore
from os import environ from os import environ
from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
...@@ -21,6 +22,13 @@ db_session = scoped_session(sessionmaker(autocommit=False, ...@@ -21,6 +22,13 @@ db_session = scoped_session(sessionmaker(autocommit=False,
Base.query = db_session.query_property() 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): def init_db(engine=engine):
# import all modules here that might define models so that # import all modules here that might define models so that
# they will be registered properly on the metadata. Otherwise # they will be registered properly on the metadata. Otherwise
......
...@@ -2,8 +2,9 @@ import graphene ...@@ -2,8 +2,9 @@ import graphene
from graphene import relay from graphene import relay
from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField
from database.models import User as UserModel, Application as ApplicationModel, Role as RoleModel 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 User(SQLAlchemyObjectType):
class Meta: class Meta:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment