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): "" ...
随机推荐
- GUI库之认识Tkinter(一)
一.介绍 Tkinter是Python默认的GUI库,我们经常使用的IDLE就是用Tkinter设计出来的,因此我们在使用的时候直接导入Tkinter模块就好了. 1.特点:可移植性.灵活性高 2.构 ...
- shell编程awk进阶
awk操作符 算术操作符: x+y, x-y, x*y, x/y, x^y, x%y -x: 转换为负数 +x: 转换为数值 字符串操作符:没有符号的操作符,字符串连接 赋值操作 ...
- 协程.md
一. # 可迭代l = [ i for i in range(10) ] # l是可迭代的,但不是迭代器for idx in l: print(idx) # range是个迭代器for i ...
- Wi-Fi 协议和数率?
IEEE 802.11Wi-Fi 协议摘要 协议 频率 信号 最大数据速率 传统 802.11 2.4GHz FHSS 或 DSSS 2Mbps 802.11A 5GHz OFDM 54Mbps 80 ...
- 调用另一个文件的python代码【转载】
转自:https://blog.csdn.net/u010412719/article/details/47089883 例如我们有a.py和b.py两个文件,当我们需要在b.py文件中应用a.py中 ...
- 7个Java项目,或许你的大学老师就会布置
前言: 有天吃饭和朋友聊天,说到大学老师布置的开发项目,结果我们一干人说出来的都基本一样,入门级别的计算器啦,稍微大一点的记事本啦,然后到后面的图书管理系统啊,购物网站啊-- 发现这些项目都是大学老师 ...
- vue的图片路径,和背景图片路径打包后错误解决
最近在研究vue,老实的按照官网提供的,搭建的了 webpack+vue+vuex+vue-router,,因为是自己搭建的,所以踩了不少坑,一般问题百度都有,这个背景图片的问题,查了很久才解决. 1 ...
- IdentityServer3:.NET开源OpenID和OAuth2架构
简介 大多数软件的相互沟通图:客户端与Web应用程序的访问.应用与Web api.api与api……相互沟通则需要授权.身份验证 IdentityServer3的功能:Web认证.SSO单点登录.We ...
- cocos2dx 3.x(游戏中的储存-UserDefault)
引擎提供的UserDefault可以简单地储存游戏中的信息,例如背景音乐音效的开关状态,用户名等等. UserDefault是一个单例对象,可以用getInstance方法来获得. 如果是第一次调 ...
- serlvet中的过滤器filter
1.概念 过滤作用,对从客户端向服务器端发送的请求进行过滤,也可以对服务器端返回的响应进行处理.它使用户可以改变一个request和修改一个 response..Filter 不是一个servlet, ...