from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String from sqlalchemy.orm import relationship, backref from . import db from flask_security.core import RoleMixin, UserMixin class User(db.Model, UserMixin): id = Column(String, primary_key=True) email = Column(String, unique=True, nullable=False) password = Column(String, nullable=False) pref_name = Column(String, nullable=False) last_login = Column(DateTime, nullable=False) fs_uniquifier = Column(String, unique=True, nullable=False) active = Column(Boolean, nullable=False) roles = relationship('Role', secondary='roles_users',backref=backref('users', lazy='dynamic')) class Role(db.Model, RoleMixin): id = Column(String, primary_key=True) name = Column(String, unique=True) description = Column(String) class RolesUsers(db.Model): __tablename__ = "roles_users" id = Column(Integer(), primary_key=True) user_id = Column('user_id', String(), ForeignKey('user.id')) role_id = Column('role_id', String(), ForeignKey('role.id'))