From d2fc47585cf02a280d16efe4914b40328fc2d9d5 Mon Sep 17 00:00:00 2001 From: Jeremy Fee <jmfee@usgs.gov> Date: Thu, 2 Jan 2020 11:02:36 -0700 Subject: [PATCH] Move User class to login module --- geomagio/webservice/database.py | 20 -------------------- geomagio/webservice/login.py | 24 +++++++++++++++++++++++- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/geomagio/webservice/database.py b/geomagio/webservice/database.py index c8b84954..4484cb0b 100644 --- a/geomagio/webservice/database.py +++ b/geomagio/webservice/database.py @@ -1,8 +1,5 @@ -from __future__ import unicode_literals -from builtins import str import flask -import flask_login import flask_migrate import flask_sqlalchemy @@ -15,20 +12,3 @@ def init_app(app: flask.Flask): db.init_app(app) migrate = flask_migrate.Migrate(app, db) - -class User(db.Model, flask_login.UserMixin): - id = db.Column(db.Integer, primary_key=True) - openid = db.Column(db.Text, unique=True, nullable=False) - email = db.Column(db.Text, unique=True, nullable=False) - groups = db.Column(db.Text) - - def get_id(self) -> str: - return str(self.openid) - - def to_dict(self): - return { - 'id': self.id, - 'openid': self.openid, - 'email': self.email, - 'groups': self.groups - } diff --git a/geomagio/webservice/login.py b/geomagio/webservice/login.py index a5a78e75..9f7c94b2 100644 --- a/geomagio/webservice/login.py +++ b/geomagio/webservice/login.py @@ -6,7 +6,7 @@ import os from authlib.integrations.flask_client import OAuth from functools import wraps -from .database import db, User +from .database import db # Blueprint for auth routes @@ -39,6 +39,28 @@ def init_app(app: flask.Flask): app.register_blueprint(blueprint) +class User(db.Model, flask_login.UserMixin): + """User database model. + """ + __tablename__ = 'user' + id = db.Column(db.Integer, primary_key=True) + openid = db.Column(db.Text, unique=True, nullable=False) + email = db.Column(db.Text, unique=True, nullable=False) + is_active = db.Column(db.Boolean, default=False) + groups = db.Column(db.Text) + + def get_id(self) -> str: + return str(self.openid) + + def to_dict(self): + return { + 'id': self.id, + 'openid': self.openid, + 'email': self.email, + 'groups': self.groups + } + + @login_manager.user_loader def _load_user(user_id): return User.query.filter_by(openid=user_id).first() -- GitLab