专栏首页sktjflask 角色权限参考(flask 95)

flask 角色权限参考(flask 95)

roles_permissions = db.Table('roles_permissions', db.Column('role_id', db.Integer, db.ForeignKey('role.id')), db.Column('permission_id', db.Integer, db.ForeignKey('permission.id')) ) class Permission(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(30), unique=True) roles = db.relationship('Role', secondary=roles_permissions, back_populates='permissions')

class Role(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(30), unique=True) users = db.relationship('User', back_populates='role') permissions = db.relationship('Permission', secondary=roles_permissions, back_populates='roles')

@staticmethod
def init_role():
    roles_permissions_map = {
        'Locked': ['FOLLOW', 'COLLECT'],
        'User': ['FOLLOW', 'COLLECT', 'COMMENT', 'UPLOAD'],
        'Moderator': ['FOLLOW', 'COLLECT', 'COMMENT', 'UPLOAD', 'MODERATE'],
        'Administrator': ['FOLLOW', 'COLLECT', 'COMMENT', 'UPLOAD', 'MODERATE', 'ADMINISTER']
    }

    for role_name in roles_permissions_map:
        role = Role.query.filter_by(name=role_name).first()
        if role is None:
            role = Role(name=role_name)
            db.session.add(role)
        role.permissions = []
        for permission_name in roles_permissions_map[role_name]:
            permission = Permission.query.filter_by(name=permission_name).first()
            if permission is None:
                permission = Permission(name=permission_name)
                db.session.add(permission)
            role.permissions.append(permission)
    db.session.commit()

参考

image.png

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • flask 用户、角色、权限模型(flask 86)

    from flask import current_app from flask_avatars import Identicon from flask_l...

    用户5760343
  • python 操作sqlite3

    用户5760343
  • flask 数据库关系(flask 28)

    class Writer(db.Model): books=db.relationship('Book',back_populates='writer') ...

    用户5760343
  • python开发部署时新增数据库中表的方法

    如果在windows执行过程中报错  ModuleNotFoundError: No module named 'MySQLdb'     ,安装    pip...

    用户1558882
  • 从模型到部署,FPGA该怎样加速广告推荐算法

    早上起床打开音乐 APP,会有今日歌单为你推荐一些歌曲。地铁上闲来无事,刷一刷抖音等短视频,让枯燥的时光变得有趣。睡前打开购物 APP,看一看今天是不是有新品上...

    机器之心
  • MongoDB 操作简捷版

    http://blog.csdn.net/yueguanghaidao/article/details/7483064

    bear_fish
  • Xcelsius(水晶易表)系列9——动态选择器应用(过滤器)

    今天继续跟大家分享关于水晶易表的动态选择器高级用法——过滤器。 这个部件可以将多层帅选筛选自动化,比如我们前两篇所讲解的多重筛选案例中, 需要为每一个筛选字段单...

    数据小磨坊
  • OpenStack启用-禁用用户,并查看详细信息

    启用用户 命令语法 openstack user set user_name --enable 样例 openstack user set woca...

    院长技术
  • Q141 Linked List Cycle

    Given a linked list, determine if it has a cycle in it. Follow up: Can you solv...

    echobingo
  • SDN基础分析浅谈

    SDN(Software Defined Network)是个有意思的概念。ONF(Open Network Foundation)这样定义SDN: In th...

    静一

扫码关注云+社区

领取腾讯云代金券