1 拷贝 rbac 组件到项目中,注册这个app

2 数据库迁移

  1 删除rbac下migrations里除了init外的文件

  2 修改用户表

  1. class User(models.Model):
  2. """
  3. 用户表
  4. """
  5. # name = models.CharField(max_length=, verbose_name='用户名')
  6. # pwd = models.CharField(max_length=, verbose_name='密码')
  7. roles = models.ManyToManyField(Role, blank=True) # 关联用类
  8.  
  9. class Meta:
  10. abstract = True # 执行数据库迁移命令时不会生成具体的表,这张表做基类
    在新项目中用户表要继承User
  11.  
  12. 之后执行数据迁移命令

在根的 urlconf 中添加 rbac 的路由

  1. url(r'rbac/', include('rbac.urls', namespace='rbac'))
  2.  
  3. namespace -- 命名空间

4 角色管理  添加角色

5 菜单管理  给权重(改变菜单显示顺序)

6 权限管理

  录入权限信息

  分配好菜单和父权限

7 分配权限

  给角色分配权限

  给用户分配角色

8 加上权限的控制

  加中间件

  权限的配置放在settings中

  1. # 权限存放在session中的KEY
  2. PERMISSION_SESSION_KEY = 'permission'
  3.  
  4. # 菜单存放在session中的KEY
  5. MENU_SESSION_KEY = 'menu'

  6. # 白名单
  7. WHITE_LIST = [
  8. r'^/login/$',
  9. r'^/reg/$',
  10. r'^/admin/.*',
  11. ]
  12. # 需要登录但是不要权限的名单
  13. NO_PERMISSION_LIST = [
  14. r'^/index/$',
  15. ]

  修改登录函数

  校验成功后权限信息的初始化

  1. from rbac.service.permission import init_permission
  2. # 登录成功后
  3. init_permission(request,obj)

9 应用上二级菜单

  母版中使用 menu  inclusion_tag

  1. {% load rbac %}
  2. {% menu request %}

  引入 css js 效果

10 路径导航  -- breadcrumb

  1. {% breadcrumb request %}

11 权限控制到按钮

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

CRM rbac 组件的应用的更多相关文章

  1. rbac组件

    创建新项目 新建一个项目untitled,注意django 版本为1.11 修改models.py,增加2个表 from django.db import models class Classes(m ...

  2. python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)

    一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...

  3. 应用rbac组件 动态生成一级菜单

    动态生成一级菜单 改表结构 需要知道是否是菜单\icon\名称权限表 +字段: is_menu = models.BooleanField(max_length=32,verbose_name='是否 ...

  4. rbac组件权限按钮,菜单,可拔插

      1.通用模板 overflow: auto; //在a和b模板中进行切换 a 模板 :左侧菜单跟随滚动条 b模板  左侧以及上不动 **** <!DOCTYPE html> <h ...

  5. rbac组件引用

    一. 批量操作思路 # 待新增 路由系统中有,但是数据库中还没有 路由系统的集合 - 数据库中权限集合 # 待更新 路由系统中有,数据库中也有, 只是更改了一些信息 路由系统的集合 & 数据库 ...

  6. day72 关于rbac组件的小部分面试题

    rbac的权限组件   基于角色的权限控制 1.什么是权限? url代表的就是一个权限 2.如何实现权限的控制? 表结构  以我们讲的课的内容为例 菜单表: - title 标题 - icon 图标 ...

  7. 2、rbac组件 后台布局模板,权限按钮,菜单,可拔插,路径重定向

    1.后台布局管理 https://www.cnblogs.com/venicid/p/7772742.html#_label0 1.通用模板 overflow: auto; //在a和b模板中进行切换 ...

  8. rbac组件之菜单操作(三)

    菜单包括菜单列表,菜单列表不仅将菜单列出来,而且将每个菜单下的权限也列出来.菜单的添加.删除.修改. urls.py ... re_path(r'^menus/list/$', MenuView.as ...

  9. rbac组件之数据库设计(一)

    rbac是基于角色的权限设计,一共包含六张表,具体的表设计如下: from django.db import models class Menu(models.Model): "" ...

随机推荐

  1. python安装talib库

    简便安装方法 最简单的安装方式: $ pip install TA-Lib 用setup.py的方式自己安装一个源文件 $ python setup.py install 有可能遇到的问题 func. ...

  2. 003-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-分布式服务框架的选择

    3.1.淘宝平台“服务化”历程 大约2007年,淘宝500人团队,维护一个war包,200多个功能模块. 1)项目团队协同成本高,业务响应越来越慢 2)应用复杂度超出人的认知负载. 3)错误难于隔离[ ...

  3. "当前不会命中断点,没有与此行关联的可执行代码"可能和"断点位置不准确"有关

    今天用VS调试代码遇到一件怪事,在函数结束前的return那一行打了断点,却报"当前不会命中断点,没有与此行关联的可执行代码".看了自己是debug模式,而且没有开启优化,不应该出 ...

  4. css实现右侧固定宽度,左侧宽度自适应

    https://blog.csdn.net/qq_22889599/article/details/78414040 反过来也可以:左侧宽度固定,右侧自适应.不管是左是右,反正就是一边宽度固定,一边宽 ...

  5. 多态使用时,父类多态时需要使用子类特有对象。需要判断 就使用instanceof

    instanceof:通常在向下转型前用于健壮性的判断,判断是符合哪一个子类对象 package Polymorphic; public class TestPolymorphic { public ...

  6. (转)Java静态内部类的实例化问题

    最近遇到的一个问题,记录一下. 静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死. 2.我在编码过程中,需 ...

  7. [LeetCode] 868. Binary Gap_Easy

    Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...

  8. js模拟链表

    链表: 每个元素,都有一个指针,指向下一个元素 //链表 function LinkedList(){ var head = null; length = 0; this.append = funct ...

  9. VS中去掉空格虚点

    Ctrl + R+W 可以在VS中添加或移除 空格虚点.

  10. IntelliJ Idea Java 使用

    IntelliJ Idea热加载 自动更新 IntelliJ IDEA热加载自动更新(Update classes and resources ) IntelliJ IDEA默认文件是自动保存的,但是 ...