예제 #1
0
class ContinuousQueryRecomputeJob(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    state = db.Column(db.String(120), default=cq_initial_state)

    cq_name = db.Column(db.Text)
    priority = db.Column(db.String(120), default="low")
    time_interval_start = db.Column(db.DateTime, nullable=True)
    time_interval_end = db.Column(db.DateTime, nullable=True)

    last_run_start = db.Column(db.DateTime)
    last_run_end = db.Column(db.DateTime)

    last_execution_time = db.Column(db.BigInteger)
예제 #2
0
class UserResources(db.Model):
    """
        UserResources 数据模型
    """
    # 表名
    __tablename__ = "user_resources"
    # 主键
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)
    # 用户ID
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    # 资源编码
    resource_code = db.Column(db.String(32),
                              db.ForeignKey("resources.resource_code"),
                              nullable=False)
    # 修改时间
    last_date = db.Column(db.DateTime, nullable=False)

    def __repr__(self):
        return "{} ({})".format(
            self.__class__.__name__,
            ", ".join("{}:{}".format(key, getattr(self, key))
                      for key in self.__dict__.keys()))
예제 #3
0
class RoleMenus(db.Model):
    """
        RoleMenus 数据模型
    """
    # 表名
    __tablename__ = "role_menus"
    # 主键
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)
    # 角色编码
    role_code = db.Column(db.Integer,
                          db.ForeignKey("roles.role_code"),
                          nullable=False)
    # 菜单编码
    menu_code = db.Column(db.String(32),
                          db.ForeignKey("menus.menu_code"),
                          nullable=False)
    # 修改时间
    last_date = db.Column(db.DateTime, nullable=False)

    def __repr__(self):
        return "{} ({})".format(
            self.__class__.__name__,
            ", ".join("{}:{}".format(key, getattr(self, key))
                      for key in self.__dict__.keys()))
예제 #4
0
class Menu(db.Model):
    """
        Menu 数据模型
    """
    # 表名
    __tablename__ = "menus"
    # 主键
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)
    # 上级菜单编码
    parent_code = db.Column(db.String(32))
    # 菜单编码
    menu_code = db.Column(db.String(32), unique=True, nullable=False)
    # 菜单名称
    menu_name = db.Column(db.String(64), index=True, nullable=False)
    # 菜单URL
    menu_url = db.Column(db.String(255))
    # 描述
    describe = db.Column(db.String(255))
    # 扩展信息
    ext = db.Column(db.String(255))
    # 修改时间
    last_date = db.Column(db.DateTime, nullable=False)
    # 版本号
    version = db.Column(db.Integer, nullable=False, default=1)

    def __repr__(self):
        return "{} ({})".format(
            self.__class__.__name__,
            ", ".join("{}:{}".format(key, getattr(self, key))
                      for key in self.__dict__.keys()))
예제 #5
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    state = db.Column(db.String(120), default=user_initial_state)
    email = db.Column(db.Text, index=True, unique=True)
    _password = db.Column(db.Text)
    firstname = db.Column(db.Text)
    lastname = db.Column(db.Text)
    url_picture = db.Column(db.Text, nullable=True, default=None)

    email_confirmed = db.Column(db.Boolean, default=False)
    user_authorized = db.Column(db.Boolean, default=False)
    is_admin = db.Column(db.Boolean, default=False)

    email_confirmation_token = db.Column(db.Text, nullable=True, default=None)
    admin_authorization_token = db.Column(db.Text, nullable=True, default=None)
    forgotten_password_token = db.Column(db.Text, nullable=True, default=None)

    @hybrid_property
    def password(self):
        return self._password

    @password.setter
    def password(self, plaintext):
        self._password = bcrypt.generate_password_hash(plaintext)
예제 #6
0
class User(db.Model):
    """
        User 数据模型

        primary_key 如果设为True这列就是表的主键\n
        unique      如果设为True这列不允许出现重复的值\n
        index       如果设为True为这列创建索引,提升查询效率\n
        nullable    如果设为True这列允许使用空值;如果设为False这列不允许使用空值\n
        default     为这列定义默认值
    """
    # 表名
    __tablename__ = 'users'
    # 主键
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   nullable=False)
    # 昵称
    nickname = db.Column(db.String(64),
                         index=True,
                         unique=True,
                         nullable=False)
    # 密码
    password = db.Column(db.String(64), nullable=False)
    # 邮箱
    email = db.Column(db.String(64), index=True, nullable=False)
    # 性别: 0. 未知 1. 男 2. 女
    sex = db.Column(db.Integer)
    # QQ
    qq = db.Column(db.String(20))
    # 图标
    icon = db.Column(db.String(255))
    # 是否可用(默认: 1): 0. 不可用 1. 可用
    is_available = db.Column(db.Integer, nullable=False, default=1)
    # 扩展信息
    ext = db.Column(db.String(255))
    # 修改时间
    last_date = db.Column(db.DateTime, nullable=False)
    # 版本号
    version = db.Column(db.Integer, nullable=False, default=1)

    def is_authenticated(self):
        """
            is_authenticated 方法是一个误导性的名字的方法,通常这个方法应该返回True,除非对象代表一个由于某种原因没有被认证的用户。

            :return:
        """
        return True

    def is_active(self):
        """
            is_active 方法应该为用户返回True除非用户不是激活的,例如,他们已经被禁了。

            :return:
        """
        return True

    def is_anonymous(self):
        """
            is_anonymous 方法应该为那些不被获准登录的用户返回True。

            :return:
        """
        return False

    def get_id(self):
        """
            get_id 方法为用户返回唯一的unicode标识符。我们用数据库层生成唯一的id。

            :return:
        """
        try:
            return unicode(self.id)  # python 2
        except NameError:
            return str(self.id)  # python 3

    def __repr__(self):
        return "{} ({})".format(
            self.__class__.__name__,
            ", ".join("{}:{}".format(key, getattr(self, key))
                      for key in self.__dict__.keys()))