Example #1
0
class BannerModel(db.Model):
    __tablename__ = 'banner'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), nullable=False)
    image_url = db.Column(db.String(255), nullable=False)
    link_url = db.Column(db.String(255), nullable=False)
    priority = db.Column(db.Integer, default=0)
    create_time = db.Column(db.DateTime, default=datetime.now)
Example #2
0
class Post(db.Model):
    __tablename__ = 'post'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(200), nullable=False)
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DATETIME, default=datetime.now)

    board_id = db.Column(db.Integer, db.ForeignKey('board.id'))
    board = db.relationship("Board", backref="posts")

    author_id = db.Column(db.String(100), db.ForeignKey('front_user.id'))
    author = db.relationship('FrontUser', backref='posts')
Example #3
0
class Role(db.Model):
    __tablename__ = 'role'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
    desc = db.Column(db.String(150), nullable=False)
    create_time = db.Column(db.DATETIME, default=datetime.now)
    rights = db.Column(db.Integer, default=UserRights.VISITOR)
    users = db.relationship('Administrator',
                            secondary=adminer_role,
                            backref="roles")

    def __str__(self):
        return self.name
Example #4
0
class FrontUser(db.Model):
    __tablename__ = 'front_user'
    id = db.Column(db.String(100), primary_key=True,
                   default=shortuuid.uuid)  #short uuid is efficient and unique
    telephone = db.Column(db.String(50), nullable=False, unique=True)
    username = db.Column(db.String(100), nullable=False)
    _password = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(50), unique=True)
    realname = db.Column(db.String(50))
    avatar = db.Column(db.String(100))
    signature = db.Column(db.String(100))
    gender = db.Column(db.Enum(GenderEnum), default=GenderEnum.SECRET)
    join_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, *args, **kwargs):
        if 'password' in kwargs:
            self.password = kwargs.get('password')
            kwargs.pop('password')
        super(FrontUser, self).__init__(*args, **kwargs)

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

    @password.setter
    def password(self, new_passwd):
        self._password = generate_password_hash(new_passwd)

    def check_password(self, passwd):
        return check_password_hash(self._password, passwd)
Example #5
0
class Administrator(db.Model):
    __tablename__ = 'administrator'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(50), nullable=False)
    _password = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)
    reg_time = db.Column(db.DATETIME, default=datetime.now)

    def __init__(self, username, password, email):
        self.username = username
        self.password = password  # do password.setter
        self.email = email

    def __str__(self):
        return self.username

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

    @password.setter
    def password(self, password):
        self._password = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password, password)

    @property
    def rights(self):
        if not self.roles:
            return UserRights.NORIGHTS

        all_rights = 0

        for role in self.roles:
            all_rights |= role.rights

        return all_rights

    def has_rights(self, rights):
        return (self.rights & rights) == rights

    @property
    def is_developer(self):
        return self.has_rights(UserRights.ALLOWED_ALL)
Example #6
0
class Comment(db.Model):
    __tablename__ = 'comment'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DATETIME, default=datetime.now)

    author_id = db.Column(db.String(100), db.ForeignKey('front_user.id'))
    author = db.relationship('FrontUser', backref='comments')

    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
    post = db.relationship('Post', backref='comments')
Example #7
0
class Board(db.Model):
    __tablename__ = 'board'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    board_name = db.Column(db.String(20), nullable=False)
    #create_user = db.Column(db.String(50),nullable=False)
    create_time = db.Column(db.DATETIME, default=datetime.now)