generated from GARAGENUM/flask_secure
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
from .database import Base
|
|
from flask_security import UserMixin, RoleMixin
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import relationship, backref
|
|
from sqlalchemy import Boolean, DateTime, Column, Integer, \
|
|
String, ForeignKey, UnicodeText
|
|
|
|
class RolesUsers(Base):
|
|
__tablename__ = 'roles_users'
|
|
id = Column(Integer(), primary_key=True)
|
|
user_id = Column('user_id', Integer(), ForeignKey('user.id'))
|
|
role_id = Column('role_id', Integer(), ForeignKey('role.id'))
|
|
|
|
class Role(Base, RoleMixin):
|
|
__tablename__ = 'role'
|
|
id = Column(Integer(), primary_key=True)
|
|
name = Column(String(80), unique=True)
|
|
description = Column(String(255))
|
|
permissions = Column(UnicodeText)
|
|
|
|
class User(Base, UserMixin):
|
|
__tablename__ = 'user'
|
|
id = Column(Integer, primary_key=True)
|
|
email = Column(String(255), unique=True)
|
|
username = Column(String(255), unique=True, nullable=True)
|
|
password = Column(String(255), nullable=False)
|
|
last_login_at = Column(DateTime())
|
|
current_login_at = Column(DateTime())
|
|
last_login_ip = Column(String(100))
|
|
current_login_ip = Column(String(100))
|
|
login_count = Column(Integer)
|
|
active = Column(Boolean())
|
|
fs_uniquifier = Column(String(255), unique=True, nullable=False)
|
|
confirmed_at = Column(DateTime())
|
|
roles = relationship('Role', secondary='roles_users',
|
|
backref=backref('users', lazy='dynamic')) |