diff options
Diffstat (limited to 'app/database.py')
-rw-r--r-- | app/database.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/database.py b/app/database.py new file mode 100644 index 0000000..24e1930 --- /dev/null +++ b/app/database.py @@ -0,0 +1,25 @@ +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')) |