diff --git a/geomagio/webservice/database.py b/geomagio/webservice/database.py
index c8b84954244555bfb0b8e10b7d393b5af2677008..4484cb0bff52e5195f91cbae9ec338889420a2ca 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 a5a78e756c347e6cb92a776f8d0549d1c95e8aef..9f7c94b2471fb570ccb8f0e684eab69dae60e443 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()