CRM rbac 组件的应用
1 拷贝 rbac 组件到项目中,注册这个app
2 数据库迁移
1 删除rbac下migrations里除了init外的文件
2 修改用户表
- class User(models.Model):
- """
- 用户表
- """
- # name = models.CharField(max_length=, verbose_name='用户名')
- # pwd = models.CharField(max_length=, verbose_name='密码')
- roles = models.ManyToManyField(Role, blank=True) # 关联用类
- class Meta:
- abstract = True # 执行数据库迁移命令时不会生成具体的表,这张表做基类
在新项目中用户表要继承User表- 之后执行数据迁移命令
3 在根的 urlconf 中添加 rbac 的路由
- url(r'rbac/', include('rbac.urls', namespace='rbac'))
- namespace -- 命名空间
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
- {% 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 %}
CRM rbac 组件的应用的更多相关文章
- rbac组件
创建新项目 新建一个项目untitled,注意django 版本为1.11 修改models.py,增加2个表 from django.db import models class Classes(m ...
- python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)
一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...
- 应用rbac组件 动态生成一级菜单
动态生成一级菜单 改表结构 需要知道是否是菜单\icon\名称权限表 +字段: is_menu = models.BooleanField(max_length=32,verbose_name='是否 ...
- rbac组件权限按钮,菜单,可拔插
1.通用模板 overflow: auto; //在a和b模板中进行切换 a 模板 :左侧菜单跟随滚动条 b模板 左侧以及上不动 **** <!DOCTYPE html> <h ...
- rbac组件引用
一. 批量操作思路 # 待新增 路由系统中有,但是数据库中还没有 路由系统的集合 - 数据库中权限集合 # 待更新 路由系统中有,数据库中也有, 只是更改了一些信息 路由系统的集合 & 数据库 ...
- day72 关于rbac组件的小部分面试题
rbac的权限组件 基于角色的权限控制 1.什么是权限? url代表的就是一个权限 2.如何实现权限的控制? 表结构 以我们讲的课的内容为例 菜单表: - title 标题 - icon 图标 ...
- 2、rbac组件 后台布局模板,权限按钮,菜单,可拔插,路径重定向
1.后台布局管理 https://www.cnblogs.com/venicid/p/7772742.html#_label0 1.通用模板 overflow: auto; //在a和b模板中进行切换 ...
- rbac组件之菜单操作(三)
菜单包括菜单列表,菜单列表不仅将菜单列出来,而且将每个菜单下的权限也列出来.菜单的添加.删除.修改. urls.py ... re_path(r'^menus/list/$', MenuView.as ...
- rbac组件之数据库设计(一)
rbac是基于角色的权限设计,一共包含六张表,具体的表设计如下: from django.db import models class Menu(models.Model): "" ...
随机推荐
- python安装talib库
简便安装方法 最简单的安装方式: $ pip install TA-Lib 用setup.py的方式自己安装一个源文件 $ python setup.py install 有可能遇到的问题 func. ...
- 003-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-分布式服务框架的选择
3.1.淘宝平台“服务化”历程 大约2007年,淘宝500人团队,维护一个war包,200多个功能模块. 1)项目团队协同成本高,业务响应越来越慢 2)应用复杂度超出人的认知负载. 3)错误难于隔离[ ...
- "当前不会命中断点,没有与此行关联的可执行代码"可能和"断点位置不准确"有关
今天用VS调试代码遇到一件怪事,在函数结束前的return那一行打了断点,却报"当前不会命中断点,没有与此行关联的可执行代码".看了自己是debug模式,而且没有开启优化,不应该出 ...
- css实现右侧固定宽度,左侧宽度自适应
https://blog.csdn.net/qq_22889599/article/details/78414040 反过来也可以:左侧宽度固定,右侧自适应.不管是左是右,反正就是一边宽度固定,一边宽 ...
- 多态使用时,父类多态时需要使用子类特有对象。需要判断 就使用instanceof
instanceof:通常在向下转型前用于健壮性的判断,判断是符合哪一个子类对象 package Polymorphic; public class TestPolymorphic { public ...
- (转)Java静态内部类的实例化问题
最近遇到的一个问题,记录一下. 静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死. 2.我在编码过程中,需 ...
- [LeetCode] 868. Binary Gap_Easy
Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...
- js模拟链表
链表: 每个元素,都有一个指针,指向下一个元素 //链表 function LinkedList(){ var head = null; length = 0; this.append = funct ...
- VS中去掉空格虚点
Ctrl + R+W 可以在VS中添加或移除 空格虚点.
- IntelliJ Idea Java 使用
IntelliJ Idea热加载 自动更新 IntelliJ IDEA热加载自动更新(Update classes and resources ) IntelliJ IDEA默认文件是自动保存的,但是 ...