zoukankan      html  css  js  c++  java
  • django-CRM-项目部署

    流程

    rbac组件的应用

    1:拷贝rbac组件到新的项目中,执行注册

    2:数据库迁移

    • 先删除rbac下migrations下除了init之外的所有文件
    • 修改用户表
      class User(models.Model):
          '''用户表'''
          roles = models.ManyToManyField(Role,blank=True)#关联用类名
      
          class Meta:
      
          
              abstract = True  #执行数据库迁移命令的时候不会生成具体的表,这张表做基类
    • 在新项目中用户表取继承User表
    • 执行数据库迁移命令

    3.在跟的urlconf中添加rbac的路由

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

    4.角色管理,添加角色

    5.菜单管理,给权重

    6.权限管理

    • 录入权限信息
    • 分配好菜单和父权限

    7.分配权限

    • 给角色分配权限
    • 给用户分配角色

    8.加上权限控制

    • 加中间件
    • 权限的配置放在settings中
      #权限存放在session中key
      PERMISSION_SESSION_KEY = 'permission'
      
      #菜单存放在session中的KEY
      MENU_SESSION_KEY = 'menu'
      
      #白名单
      WHITE_LIST = [
          r'^/login/$',
          r'^/reg/$',
          r'^/admin/.*',
      ]
      
      #没有权限
      NO_PERMISSION_LIST = [
          r'^/index/$',
      ] 
    •  修改登录函数 校验成功后权限信息的初始化

      from rbac.service.permission import init_permission
      # 登录成功后调用这个函数
      init_permission(request,obj)

    9.应用上二级菜单 ---在母版中使用 menu inclusion_tag

    {% load rbac %}
    {% menu request %}

    引入css、js效果

    10.引入路径导航

    {% breadcrumb request %}

    11.权限控制到按钮

    {% load rbac %}
    {% if request|has_permission:'add_customer' %}
        <a class="btn btn-sm btn-primary" style="margin-bottom: 5px"
           href="{% reverse_url request 'add_customer' %}">添加</a>
    
    {% endif %}

    ...

  • 相关阅读:
    gitignore 过滤文件
    lua语言入门之Sublime Text设置lua的Build System
    进程间通信
    临界区 事件 互斥对象等多线程编程基础
    Delphi通过Map文件查找内存地址出错代码所在行
    Delphi/C++ Builder Map文件格式解析
    深入理解计算机系统----读书笔记
    TCP/IP——内网IP
    Python——import与reload模块的区别
    Linux——grep binary file
  • 原文地址:https://www.cnblogs.com/CrazySheldon1/p/10459029.html
Copyright © 2011-2022 走看看