• 将权限组件应用到新项目


    1. 拷贝rbac组件到新的项目中,注册app 

    2. 修改用户表,继承rbac中的User

    class User(models.Model):
        """
        用户表
        """
        # name = models.CharField(max_length=32, verbose_name='名称')
        # password = models.CharField(max_length=32, verbose_name='密码')
        roles = models.ManyToManyField(Role, verbose_name='用户拥有的角色', blank=True)
    
        # def __str__(self):
        #     return self.name
        class Meta:
            abstract = True  # 数据库迁移时候不会生成表,用来做基类
    
    class UserProfile(User, models.Model):

    3.执行数据库迁移命令

      1.删除rbac下的migrations中的记录

      2. 注掉admin中的User表

      3.roles = models.ManyToManyField(Role, verbose_name='用户拥有的角色', blank=True) # 关联的字段不要写成字符串形式

    4.设置rbac的url

    url(r'rbac/', include('rbac.urls',namespace='rbac'))

    5.菜单管理

    6.权限的录入

      1.所有的url要有别名name

      2.不要忽略rbac  namespace

      3.注意url和别名的长度

      4.构建层级结构

    7.角色管理

    8. 分配权限

      1.注意用新的用户表替换rbac中的User

      2.给不同角色分配权限

      3.给不同用户分配角色

    9.应用上权限

      1.应用中间件   在settings中写上权限的配置

    # 权限的key
    PERMISSION_SESSION_KEY = 'permissions'
    # 菜单的key
    PERMISSION_MENU_KEY = 'menus'
    WHITE_LIST = [
        r'^/login/$',
        r'^/reg/$',
        r'^/admin/.*',
    ]
    
    NO_PERMISSION_LIST = [
        r'^/index/$',
        r'^/logout/$',
    ]
    
    # 路径导航
    BREADCRUMB = 'breadcrumb_list'
    # 路径导航
    CURRENT_MENU = 'current_parent_id'

       2.登陆成功后权限的初始化

    from rbac.service.permission import init_permisson
    # 权限信息的初始化
    init_permisson(request,obj)

    10.动态生成二级菜单

        1.在母版中使用

    ```
    导入CSS js 
    {% load rbac %}
    {% menu request %}
    ```

    11.应用路径导航

    {% breadcrumb request %}

    12.权限控制到按钮级别

    {% load rbac %}
    {% if request|has_permission:"consult_add" %}
        <a href="{% url 'consult_add' %}" class="btn btn-primary btn-sm">添加</a>
    {% endif %}
    1. 拷贝rbac组件到新的项目中,注册app

    2. 修改用户表,继承rbac中的User

  • 相关阅读:
    HDU2515_数学规律题
    HDU1086_You can Solve a Geometry Problem too_判断两线段相交
    HDU1115_Lifting the Stone_凹凸多边形重心_可作为模板
    HDU2036_改革春风照大地_点求多边形面积
    Codeforces Beta Round #92 (Div. 2 Only) _A题
    HDU2108_Shape of HDU_判断凹凸
    response.setContentType设置
    vue 文件下载实现
    iText5实现Java生成PDF文件完整版
    java使用IText将数据导出为pdf文件(数据为excel表格样式)
  • 原文地址:https://www.cnblogs.com/zwq-/p/10229243.html
Copyright © 2020-2023  润新知