Exemplo n.º 1
0
class Menu(db.Model):
    __tablename__ = 'menus'
    id = db.Column(db.Integer, primary_key=True)
    exclude_columns = ['created_at', 'updated_at']
    auth_name = Column(db.String(32), nullable=False, index=True)
    path = Column(db.String(256), nullable=False)
    level = Column(db.Integer, nullable=True)
    created_at = Column(db.Date, nullable=True, default=datetime.now)
    updated_at = Column(db.Date, nullable=True, default=datetime.now)
    parent_id = db.Column(db.Integer, db.ForeignKey('menus.id'))
    children = db.relationship('Menu', back_populates='parent')
    parent = db.relationship('Menu',
                             back_populates='children',
                             remote_side=[id])

    # role_id = Column(db.Integer, db.ForeignKey('roles.id'))
    # role = relationship('Role', backref=db.backref('menus', order_by=id))
    # roles = relationship('Role', secondary=association_table, back_populates="menus")
    # 将back_populates修改为db.backref() 指定 lazy = 'dynamic' 参数,关系两侧返回的查询都可接受额外的过滤器
    roles = relationship('Role',
                         secondary=association_table,
                         backref=db.backref("menus", lazy='dynamic'))

    def __init__(self, auth_name, path, **kwargs):
        db.Model.__init__(self, auth_name=auth_name, path=path, **kwargs)
Exemplo n.º 2
0
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.String(64),
                   primary_key=True,
                   default=generate_uuid(),
                   nullable=False,
                   unique=True)
    email = db.Column(db.String(256), unique=True, nullable=False)
    password = db.Column(db.String(256), nullable=False)
    created_on = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    @classmethod
    def encode_auth_token(cls, user_id):
        payload = dict(exp=datetime.datetime.utcnow() +
                       datetime.timedelta(seconds=5),
                       iat=datetime.datetime.utcnow(),
                       sub=user_id)

        return jwt.encode(payload, config.SECRET_KEY, algorithm='HS256')

    @classmethod
    def decode_auth_token(cls, auth_token):
        try:
            payload = jwt.decode(auth_token,
                                 config.SECRET_KEY,
                                 algorithms=['HS256'])
            return payload['sub']

        except jwt.ExpiredSignature:
            return "Signature expired. Please log in again"

        except jwt.InvalidTokenError:
            return "Invalid token. Please log in again"
Exemplo n.º 3
0
class ProtestSubmission(db.Model):
    __tablename__ = "protestsubmission"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    protest_id = db.Column(db.Integer, db.ForeignKey("protest.id"))
    address = db.Column(db.String(200))
    # lat and lng are hidden to the user on the ui
    lat = db.Column(db.Float(7))
    lng = db.Column(db.Float(7))
    description = db.Column(db.String(120))
    size = db.Column(db.String(120))
    issue_locality = db.Column(db.String(120))
    issue_type = db.Column(db.String(120))
    timestamp = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    def to_json(self):
        return {
            'id': self.id,
            'protest_id': self.protest_id,
            'address': self.address,
            'lat': self.lat,
            'lng': self.lng,
            'description': self.description,
            'size': self.size,
            'issue_locality': self.issue_locality,
            'issue_type':
            self.issue_type.split(',') if self.issue_type else []
        }
Exemplo n.º 4
0
class Question(db.Model):
    id = db.Column(db.String(64), primary_key=True, default=generate_uuid)
    text = db.Column(db.String(1000), nullable=False)
    date_created = db.Column(db.DateTime, default=datetime.utcnow())

    def __str__(self):
        return self.text
Exemplo n.º 5
0
class Envip(db.Model):
    __tablename__ = 'envip'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ip_name = db.Column(db.String(255), nullable=False)
    ip_type = db.Column(db.String(50), nullable=False)

    def __repr__(self):
        return 'ip_name:%s ip_type:%s' % self.ip_name, self.ip_type
Exemplo n.º 6
0
class Group(db.Model):
    __tablename__ = 'group'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    group_name = db.Column(db.String(50), nullable=False)
    project_id = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return 'group_name:%s' % self.group_name
Exemplo n.º 7
0
class User(db.Model):  #用户表
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(256), nullable=False)
    #     定义wai建
    article_id = db.Column(db.Integer,
                           db.ForeignKey('article.id'),
                           nullable=True)
Exemplo n.º 8
0
class Photo(db.Model):
    __tablename__ = 'photos'
    id = db.Column(db.Integer, primary_key=True)
    photo_name = Column(db.String(500), nullable=False, index=True)
    # photo_url = Column(db.Url(), nullable=False, index=True)
    photo_url = Column(db.String(500), nullable=False, index=True)
    good_id = Column(db.Integer, db.ForeignKey('goods.id'))
    good = relationship('Good', back_populates='photos')
Exemplo n.º 9
0
class Permission(db.Model):
    __tablename__ = 'm_permission'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), nullable=True)
    parent_id = db.Column(db.Integer, nullable=True)
    endpoint = db.Column(db.String(255), nullable=True)
    # manager = db.relationship('Manager',backref='m_permission',uselist=False)
    # manager_id  = db.Column(db.Integer,db.ForeignKey('m_manager.id'))
Exemplo n.º 10
0
class Role(db.Model):
    __tablename__ = 'roles'
    id = Column(db.Integer, primary_key=True)
    # exclude_columns = ['created_at', 'updated_at']
    role_name = Column(db.String(32), nullable=False, index=True)
    role_desc = Column(db.String(256), nullable=True, index=False)
    created_at = Column(db.Date, nullable=True, default=datetime.now)
    updated_at = Column(db.Date, nullable=True, default=datetime.now)

    # menus = relationship('Menu', secondary=association_table, back_populates="roles")

    def __init__(self, role_name, role_desc, **kwargs):
        db.Model.__init__(self,
                          role_name=role_name,
                          role_desc=role_desc,
                          **kwargs)

    @property
    def role_menus(self):
        # TODO 优化角色对应权限的筛选逻辑
        menus = []
        menus_1 = self.menus.filter_by(level=0).all()
        # logging.error(menus_1)
        for menu_1 in menus_1:
            # menu_1 = copy.deepcopy(menu_1_o)
            item_1 = {}
            children_1 = []
            # logging.error((menu_1.children, self.menus.all()))
            for menu_2 in menu_1.children:
                # menu_2 = copy.deepcopy(menu_2_o)
                item_2 = {}
                children_2 = []
                if menu_2 in self.menus.all():
                    # children_1.append(menu_2)
                    for menu_3 in menu_2.children:
                        if menu_3 in self.menus.all():
                            children_2.append(menu_3)
                    item_2 = {
                        'children': children_2,
                        'auth_name': menu_2.auth_name,
                        'created_at': menu_2.created_at,
                        'id': menu_2.id,
                        'level': menu_2.level,
                        'path': menu_2.path,
                        'updated_at': menu_2.updated_at
                    }
                    children_1.append(item_2)
            item_1 = {
                'children': children_1,
                'auth_name': menu_1.auth_name,
                'created_at': menu_1.created_at,
                'id': menu_1.id,
                'level': menu_1.level,
                'path': menu_1.path,
                'updated_at': menu_1.updated_at
            }
            menus.append(item_1)
        return menus
Exemplo n.º 11
0
class ReportLog(db.Model):
    __tablename__ = 'report_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    tree_id = db.Column(db.Integer, nullable=False)
    tree_name = db.Column(db.String(255), nullable=False)
    report_name = db.Column(db.String(255), nullable=False)
    report_info = db.Column(db.String(50000), nullable=False)
    uid = db.Column(db.Integer, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
Exemplo n.º 12
0
class Preview(db.Model):
    __tablename__ = "preview"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    title = db.Column(db.String(255), unique=True)  # 标题
    logo = db.Column(db.String(255), unique=True)  # 封面
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Preview %r>" % self.title
Exemplo n.º 13
0
class Auth(db.Model):
    __tablename__ = "auth"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 名称
    url = db.Column(db.String(255), unique=True)  # 地址
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Auth %r>" % self.name
Exemplo n.º 14
0
class Language(db.Model):
    __tablename__ = 'm_language'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    description = db.Column(db.String(255), nullable=True)
    name = db.Column(db.String(255), nullable=True)
    shortName = db.Column(db.String(255), nullable=True)
    createtime = db.Column(db.DateTime, default=datetime.now)
    # manager_id  = db.Column(db.Integer,db.ForeignKey('m_manager.id'))
    entry = db.relationship('Entry', backref='m_language', uselist=False)
Exemplo n.º 15
0
class Function(db.Model):
    __tablename__ = 'function'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    func_name = db.Column(db.String(50), nullable=False)
    port_name = db.Column(db.String(255), nullable=False)
    request_type = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return 'func_id:%s func_name:%s port_name:%s request_type:%s' % self.id, self.func_name, self.port_name, self.request_type
Exemplo n.º 16
0
class Entry(db.Model):
    __tablename__ = 'm_entry'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), nullable=True)
    description = db.Column(db.String(255), nullable=True)
    createtime = db.Column(db.DateTime, default=datetime.now)
    result = db.Column(db.String(255), nullable=True, default="")
    project_id = db.Column(db.Integer, db.ForeignKey('m_project.id'))
    language_id = db.Column(db.Integer, db.ForeignKey('m_language.id'))
Exemplo n.º 17
0
class Timingtask(db.Model):
    __tablename__ = 'timingtask'  # 定义该表在mysql数据库中的实际名称
    # 定义表的内容
    id = db.Column(db.Integer, primary_key=True)
    treename = db.Column(db.String(255), nullable=False)
    pointtime = db.Column(db.String(255), nullable=False)
    username = db.Column(db.String(255), nullable=False)
    taskid = db.Column(db.String(255), nullable=False)
    tasktype = db.Column(db.String(255), nullable=False)
Exemplo n.º 18
0
class Role(db.Model):
    __tablename__ = "role"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 名称
    auths = db.Column(db.String(600))  # 权限列表
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Role %r>" % self.name
Exemplo n.º 19
0
class Role(db.Model):
    __tablename__ = "role"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 名称
    auths = db.Column(db.String(600))  # 角色权限列表
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    admins = db.relationship("Admin", backref='role')  # 管理员外键关系关联

    def __repr__(self):
        return "<Role %r>" % self.name
Exemplo n.º 20
0
class User(db.Model):
    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(128))

    def check_password(self, password):

        return check_password_hash(self.password, password)
Exemplo n.º 21
0
class Oplog(db.Model):
    __tablename__ = "oplog"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    admin_id = db.Column(db.Integer, db.ForeignKey('admin.id'))  # 所属管理员
    ip = db.Column(db.String(100))  # 登录IP
    reason = db.Column(db.String(600))  # 操作原因
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 登录时间

    def __repr__(self):
        return "<Oplog %r>" % self.id
Exemplo n.º 22
0
class Brainmap(db.Model):
    __tablename__ = 'brainmap'  # 定义该表在mysql数据库中的实际名称
    # 定义表的内容
    id = db.Column(db.Integer, primary_key=True)
    pid = db.Column(db.Integer, nullable=False)
    brainmapname = db.Column(db.String(10000), nullable=False)
    rdstatus = db.Column(db.String(50), nullable=False)
    qastatus = db.Column(db.String(50), nullable=False)
    uid = db.Column(db.Integer, nullable=False)
    tree_id = db.Column(db.Integer, nullable=False)
Exemplo n.º 23
0
class Project(db.Model):
  __tablename__ = 'm_project'
  id = db.Column(db.Integer, primary_key=True, autoincrement=True)
  name = db.Column(db.String(255),nullable = True)
  description = db.Column(db.String(255),nullable = True)
  secretId = db.Column(db.String(255),nullable=True,unique=True)
  createtime = db.Column(db.DateTime, default=datetime.now)
  # manager_id  = db.Column(db.Integer,db.ForeignKey('m_manager.id'))
  entry = db.relationship('Entry', backref='m_project',uselist=False)
  entryPendingAmount = db.Column(db.String(255),nullable=True)
  language = db.relationship('Language',secondary='project_language',backref='m_project')
Exemplo n.º 24
0
class OperationLog(db.Model):
    __tablename__ = 'operation_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    uid = db.Column(db.Integer, nullable=False)
    name = db.Column(db.String(255), nullable=False)
    username = db.Column(db.String(255), nullable=False)
    project_type = db.Column(db.Integer, nullable=False)
    tree_id = db.Column(db.Integer, nullable=False)
    operation_content = db.Column(db.String(5000), nullable=False)
    operation_result = db.Column(db.Integer, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
Exemplo n.º 25
0
class User(UserMixin, db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)
    username = db.Column(db.String(50), nullable=False, unique=True)
    password_hash = db.Column(db.String(128))
    email = db.Column(db.String(128), nullable=False, unique=True)
    confirmed = db.Column(db.Boolean, default=False)
    icon = db.Column(db.String(64), default='default.jpg')
    # lazy 在这里是懒加载 dynamic表示不加载数据但是提供查询
    # 如果一对一的关系 需要加上 uselist=Flase
    posts = db.relationship("Posts", backref="user", lazy="dynamic")

    # 当前用户通过 user 访问 posts 表中的字段
    # 密码不能读 而且永不返回
    @property
    def password(self):
        raise AttributeError("密码不可读的帅哥")

    # 设置密码的时候  保存的是加密后的hash值
    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    # 校验密码是否正确 正确 true 错误 false
    # 先加密 再跟数据库比较
    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    # 生成token   通过邮箱发送给用户
    def generate_active_token(self, expires_in=3600):
        s = Serializer(current_app.config['SECRET_KEY'], expires_in=expires_in)
        return s.dumps({'id': self.id})

    # 验证token 方法
    @staticmethod
    def check_active_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except:
            return False
        # 这个id是从 token中解析出来的  然后根据id 到数据库中查找  对应的数据进行更新
        u = User.query.get(data.get('id'))
        if not u:
            flash("该用户不存在")
            return False
        if not u.confirmed:
            u.confirmed = True
            db.session.add(u)
        return True
Exemplo n.º 26
0
class Send(db.Model):
    __tablename__ = 'send'
    id = db.Column(db.Integer,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    OrderId = db.Column(db.Integer, db.ForeignKey('order.id'))
    ProductName = db.Column(db.String(30))
    SendName = db.Column(db.String(30))
    SendDate = db.Column(db.Date)
    SendPhone = db.Column(db.String(30))
    SendAddress = db.Column(db.String(100))
Exemplo n.º 27
0
class Serve(db.Model):
    __tablename__ = 'serve'
    id = db.Column(db.Integer,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    ServeId = db.Column(db.String(30))
    CustomId = db.Column(db.Integer,
                         db.ForeignKey('custom.id'),
                         nullable=False)
    ServeDate = db.Column(db.Date)
    ServeInfo = db.Column(db.String(100))
Exemplo n.º 28
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
    username = db.Column(db.String(64), unique=True, index=True)
    password = db.Column(db.Text)
    role = db.Column(db.Integer, nullable=False)
    posts = db.relationship('Post', backref='users')
    trees = db.relationship('Tree', backref='users')

    def __repr__(self):
        return 'User:%s' % self.username
Exemplo n.º 29
0
class MonitorResult(db.Model):
    __tablename__ = 'monitor_result'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    one_node = db.Column(db.Integer, nullable=False)
    two_node = db.Column(db.Integer, nullable=False)
    three_node = db.Column(db.Integer, nullable=False)
    four_node = db.Column(db.Integer, nullable=False)
    service_name = db.Column(db.String(255), nullable=False)
    service_ip = db.Column(db.String(255), nullable=False)
    result_details = db.Column(db.Text, nullable=False)
    run_result = db.Column(db.Integer, nullable=False)
    is_new = db.Column(db.Integer, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
Exemplo n.º 30
0
class Admin(db.Model):
    __tablename__ = 'admin'
    id = db.Column(db.Integer,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    username = db.Column(db.String(30), nullable=False)
    password = db.Column(db.String(30), nullable=False)

    def check_pwd(self, pwd):
        if self.password == pwd:
            return True
        else:
            return False