1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
"""Flask SQLAlchemy ORM models for Social Auth"""
from mongoengine import ReferenceField
from social.utils import setting_name, module_member
from social.storage.mongoengine_orm import MongoengineUserMixin, \
MongoengineAssociationMixin, \
MongoengineNonceMixin, \
MongoengineCodeMixin, \
BaseMongoengineStorage
class FlaskStorage(BaseMongoengineStorage):
user = None
nonce = None
association = None
code = None
def init_social(app, db):
User = module_member(app.config[setting_name('USER_MODEL')])
class UserSocialAuth(db.Document, MongoengineUserMixin):
"""Social Auth association model"""
user = ReferenceField(User)
@classmethod
def user_model(cls):
return User
class Nonce(db.Document, MongoengineNonceMixin):
"""One use numbers"""
pass
class Association(db.Document, MongoengineAssociationMixin):
"""OpenId account association"""
pass
class Code(db.Document, MongoengineCodeMixin):
pass
# Set the references in the storage class
FlaskStorage.user = UserSocialAuth
FlaskStorage.nonce = Nonce
FlaskStorage.association = Association
FlaskStorage.code = Code
|