|
|
@@ -5,6 +5,9 @@ Copyright (c) 2019 - present AppSeed.us
|
|
|
|
|
|
from flask_login import UserMixin
|
|
|
|
|
|
+from sqlalchemy.orm import relationship
|
|
|
+from flask_dance.consumer.storage.sqla import OAuthConsumerMixin
|
|
|
+
|
|
|
from apps import db, login_manager
|
|
|
|
|
|
from apps.authentication.util import hash_pass
|
|
|
@@ -13,10 +16,12 @@ class Users(db.Model, UserMixin):
|
|
|
|
|
|
__tablename__ = 'Users'
|
|
|
|
|
|
- id = db.Column(db.Integer, primary_key=True)
|
|
|
- username = db.Column(db.String(64), unique=True)
|
|
|
- email = db.Column(db.String(64), unique=True)
|
|
|
- password = db.Column(db.LargeBinary)
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ username = db.Column(db.String(64), unique=True)
|
|
|
+ email = db.Column(db.String(64), unique=True)
|
|
|
+ password = db.Column(db.LargeBinary)
|
|
|
+
|
|
|
+ oauth_github = db.Column(db.String(100), nullable=True)
|
|
|
|
|
|
def __init__(self, **kwargs):
|
|
|
for property, value in kwargs.items():
|
|
|
@@ -46,3 +51,7 @@ def request_loader(request):
|
|
|
username = request.form.get('username')
|
|
|
user = Users.query.filter_by(username=username).first()
|
|
|
return user if user else None
|
|
|
+
|
|
|
+class OAuth(OAuthConsumerMixin, db.Model):
|
|
|
+ user_id = db.Column(db.Integer, db.ForeignKey("Users.id", ondelete="cascade"), nullable=False)
|
|
|
+ user = db.relationship(Users)
|