zoukankan      html  css  js  c++  java
  • 将权限组件应用到新项目

    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

  • 相关阅读:
    mybatis的注意事项一
    java代码操作word模板生成PDF文件
    使用mybatis框架实现带条件查询多条件(传入实体类)
    MyBatis框架ResultMap节点
    优化mybatis框架中的查询用户记录数的案例
    Mybatis框架联表查询显示问题解决
    使用mybatis框架实现带条件查询单条件
    [DB] 如何彻底卸载删除MySQL 【MYSQL】
    [DB] MySQL窗口输入密码后消失问题 【MYSQL】
    [acm] 曾经 刷题记录 [只有正确的坚持才是胜利]
  • 原文地址:https://www.cnblogs.com/zwq-/p/10229243.html
Copyright © 2011-2022 走看看