flask之用户角色和用户资料编辑

本文介绍了在Flask中实现用户角色管理,包括角色创建、权限验证和视图限制。同时,阐述了用户资料信息的添加、更新及权限编辑功能,提供了详细代码示例。
摘要由CSDN通过智能技术生成

效果图

这一章节完成后的效果如下:
- 1.普通用户
这里写图片描述
- 2.管理者
这里写图片描述

用户角色

  • 1.在个人博客系统中用户分为4种分立角色,分别为管理员、协管员、普通用户和匿名用户,每种用户有不同的权限,下面在数据库中建立用户这张表。
class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=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('User', backref='itsrole')                 

只有普通用户的default字段为True,其它都默认为False。permissions字段是个整数,表示位操作,各操作都对应一个位位置,如果能执行某项操作的角色,其位被设为1。permissions各个权限位的表示如下:
* FOLLOW = 0x01 关注用户
* COMMENT = 0x02 在他人文章中发表评论
* WRITE_ARTICLES=0x04 写文章
* MODERATE_COMMENTS=0x08 管理他人评论
* ADMINISTER=0x80 管理员

  • 2.下表列出了4种用户角色以及用户角色的权限,如果想要添加另外的角色,只需要使用不同的权限进行组合。在个人博客系统中用户分为4种分立角色,分别为管理员、协管员、普通用户和匿名用户,每种用户有不同的权限。
角色 权限 说明
匿名 0b00000000(0x00) 未登陆的用户,只有阅读权限
普通用户 0b00000111(0x07) 发布文章、发表评论、关注其它用户
协管员 0b00001111(0x0f) 增加审查不当评论的权限
管理员 0b11111111(0xff) 拥有所有权限
  • 3.下面在app/models.py文件中创建一个静态方法函数,一次性插入所有角色,代码如下:
@staticmethod
    def insert_roles():
        roles = {
            'User':(Permission.FOLLOW|Permission.COMMENT|
                     Permission.WRITE_ARTICLES, True),     # 只有普通用户的default为True
            'Moderare':(Permission.FOLLOW|Permission.COMMENT|
                    Permission.WRITE_ARTICLES|Permission.MODERATE_COMMENTS, False),
            'Administrator':(0xff, False)
        }
        for r in roles:
            role = Role.query.filter_by(name=r).first()
            if role is None:
                role = Role(name=r)
            role.permissions = roles[r][0]
            r
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值