示例#1
0
文件: models.py 项目: sfx666/blogs
class bbs_user(db.Model):
    __tablename__ = "bbs_user"
    uid = db.Column(db.Integer(11), primary_key=True,
                    autoincrement=True)  # 自增id
    username = db.Column(db.String(16), nullable=False)  # 帐号
    password = db.Column(db.String(256), nullable=False)  # 密码(md5加密)
    email = db.Column(db.String(32), nullable=False)  # 邮箱
    udertype = db.Column(db.Boolean(), nullable=False, default=False)  # 帐号类型
    regtime = db.Column(db.DateTime,
                        nullable=False,
                        default=datetime.datetime.now())  # 注册时间
    lasttime = db.Column(db.DateTime,
                         nullable=False,
                         default=datetime.datetime.now())  # 最后登录时间
    regip = db.Column(db.Integer(12), nullable=False)  # 注册IP
    picture = db.Column(db.String(256),
                        nullable=False,
                        default='/static/img/timg.jpeg')  # 头像
    grade = db.Column(db.Integer(10), nullable=True, default=0)  # 积分
    problem = db.Column(db.String(256), nullable=True)  # 找回密码
    result = db.Column(db.String(256), nullable=True)  # 答案
    realname = db.Column(db.String(50), nullable=True)  # 真实姓名
    sex = db.Column(db.Boolean(), nullable=True, default=False)  # 性别
    birthday = db.Column(db.String(32), nullable=True)  # 生日
    place = db.Column(db.String(64), nullable=True)  # 所在地
    qq = db.Column(db.String(16), nullable=True)  # qq号
    autograph = db.Column(db.String(512), nullable=True)  # 个人签名
    allowlogin = db.Column(db.Boolean(), nullable=False,
                           default=False)  # 是否允许登录
class User(UserModelWithPC):

    # 从BaseModel中继承了 id
    # 从BaseUserModel中继承了 name, _password, is_delete
    # 从UserModelWithPC中继承了permission 和 check_permission 方法

    gender = db.Column(db.String(2))
    is_super = db.Column(db.Boolean(), default=False)
    address = db.Column(db.String(128), default='')
    e_mail = db.Column(db.String(128))
    phone = db.Column(db.String(16))

    def __repr__(self):
        return "User(id={}, name={!r})".format(self.id, self.name)

    @staticmethod
    def create_admin(**kwargs):
        username = kwargs.get('username')
        address = kwargs.get('address')
        gender = kwargs.get('gender')
        e_mail = kwargs.get('email')
        phone = kwargs.get('phone')
        password = kwargs.get('password')
        user = User(
            permission=Permission.grant_super_code(),
            address=address,
            gender=gender,
            e_mail=e_mail,
            phone=phone,
            is_super=True,
            name=username
        )
        user.password = password
        return user
示例#3
0
class MovieUser(Baseful):

    name = db.Column(db.String(32), unique=True)
    _password = db.Column(db.String(256))
    phone = db.Column(db.String(32), unique=True)
    is_delete = db.Column(db.Boolean(), default=False)
    permission = db.Column(db.Integer, default=PERMISSION_NONE)

    @property
    def password(self):
        raise Exception('不准查看')

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

    def check_password(self, user_password):
        return check_password_hash(self._password, user_password)

    def check_permission(self, permission_s):

        if BLAK_USER & permission_s == BLAK_USER:
            return False
        else:
            return self.permission & permission_s == permission_s
示例#4
0
文件: models.py 项目: sfx666/blogs
class bbs_order(db.Model):
    __tablename__ = "bbs_order"
    oid = db.Column(db.Integer(10),
                    primary_key=True,
                    nullable=False,
                    autoincrement=True)  # 自增id
    uid = db.Column(db.Integer(11), nullable=False)  # 用户id(外键)
    tid = db.Column(db.Integer(11), nullable=False)  # 帖子id(外键)
    rate = db.Column(db.Integer(11), nullable=False)  # 价格
    addtime = db.Column(db.Integer(11), nullable=False)  # 创建时间
    ispay = db.Column(db.Boolean(), nullable=False, default=False)  # 是否支付
示例#5
0
class BaseUserModel(BaseModel):
    __abstract__ = True

    name = db.Column(db.String(32), unique=True, nullable=False)
    _password = db.Column(db.String(128), nullable=False)
    is_delete = db.Column(db.Boolean(), default=False, nullable=False)
    # 项目扩展性保证,若需要对用户级联,只需要绑定相应id
    extension = db.Column(db.Integer, default=0)

    @property
    def password(self):
        raise LookupError("No Permission to get the PASSWPRD.")

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

    def check_password(self, input_pass_val):
        return check_password_hash(self._password, input_pass_val)

    def check_permission(self, permission):
        raise NotImplementedError