Пример #1
0
class User(db.Model):
    """user table"""
    __tablename__ = 'user'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    username = db.Column(db.String(50), unique=True,nullable=False)
    password = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(128))
    mobile = db.Column(db.String(11))
    # name = db.Column(db.String(50))
    # gender = db.Column(db.SmallInteger)  # 0 未知, 1 男 2 女
    permission = db.Column(db.Integer)
    createTime = db.Column(db.DateTime,default=datetime.now())

    roles = db.relationship('UserRole',backref='User',lazy='dynamic')
    cases = db.relationship('CaseData',backref='User',lazy='dynamic')


    def __init__(self,username,password,email,mobile,permission,createTime):
        self.username = username
        self.password = password
        self.email = email
        self.mobile = mobile
        # self.name = name
        # self.gender = gender
        self.permission = permission
        self.createTime = createTime


    def __repr__(self):
        return '<用户id{}-->账号{}>'.format(self.id, self.username)

    def to_json(self):
        return dict(id=self.id, name=self.username)

    @property
    def permissions(self):
        permissions = Permission.query.join(RolePermission).join(Role).join(UserRole).join(User).filter(User.id == self.id)

        return permissions


    @property
    def menus(self):
        menus = Menu.query.join(RoleMenu).join(Role).join(UserRole).join(User).filter(User.id == self.id).order_by(Menu.type_,Menu.order).all()

        return menus
Пример #2
0
class caseProject(db.Model):
    """ project table """
    __tablename__ = 'projects'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    projectName = db.Column(db.String(50),unique=True)

    cases = db.relationship('CaseData',backref='caseProject',lazy='dynamic')
    modules = db.relationship('caseModule',backref='caseProject',lazy='dynamic')

    def __init__(self,projectName):
        self.projectName = projectName


    def __repr__(self):
        return '<项目id{}-->项目名称{}>'.format(self.id,self.projectName)


    def to_json(self):
        return dict(id=self.id, name=self.projectName)
Пример #3
0
class Role(db.Model):

    __tablename__ = 'roles'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name = db.Column(db.String, nullable=True, unique=True)
    default = db.Column(db.Boolean, default=False)
    permissions = db.Column(db.Integer)

    users = db.relationship('UserRole', backref='Role')
    rolePermission = db.relationship('RolePermission',backref='Role',lazy='dynamic')
    roleMenu = db.relationship('RoleMenu',backref='Role',lazy='dynamic')


    def __init__(self,name,default,permissions):
        self.name = name
        self.default = default
        self.permissions = permissions


    def __repr__(self):
        return '<角色id{}-->角色名称{}>'.format(self.id, self.name)
Пример #4
0
class Permission(db.Model):

    __tablename__ = 'permission'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name = db.Column(db.String(50))
    action = db.Column(db.String(250), unique=True)

    permissions = db.relationship('RolePermission',backref='Permission',lazy='dynamic')


    def __init__(self,name,action):
        self.name = name
        self.action = action

    def __repr__(self):
        return '<权限id{}-->权限名称{}>'.format(self.id, self.name)
Пример #5
0
class caseModule(db.Model):
    """ module table """
    __tablename__ = 'modules'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    moduleName = db.Column(db.String(50))

    projectId = db.Column(db.Integer,db.ForeignKey('projects.id')) # table id column
    cases = db.relationship('CaseData',backref='caseModule',lazy='dynamic')



    def __init__(self,moduleName,projectId):
        self.moduleName = moduleName
        self.projectId =projectId


    def __repr__(self):
        return '<模块id{}-->模块名称{}>'.format(self.id,self.moduleName)


    def to_json(self):
        return dict(id=self.id, name=self.moduleName)
Пример #6
0
class Menu(db.Model):

    __tablename__ = 'menu'

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name = db.Column(db.String(50))
    icon = db.Column(db.String(50))
    url = db.Column(db.String(250))
    order = db.Column(db.SmallInteger, default=0)
    bg_color = db.Column(db.String(50))

    roleMenu = db.relationship('RoleMenu',backref='Menu',lazy='dynamic')


    def __init__(self,name,icon,url,order,bg_color):
        self.name = name
        self.icon = icon
        self.url = url
        self.order = order
        self.bg_color = bg_color

    def __repr__(self):
        return '<菜单id{}-->菜单名称{}>'.format(self.id, self.name)