十二、基于Django实现RBAC权限管理
一、RBAC概述
RBAC(Role-Based Access Control,基于角色的访问控制),通过角色绑定权限,然后给用户划分角色。
从企业的角度来说,基本上是按照角色来划分职能。比如,CEO,具有公司全局的权限;部门经理,具有部门全局的权限;部门主管,具有部门部分的权限;普通员工,具有部门一小部分权限。
不同的角色,能够获取的资源是不一样的,所以RBAC就是按照这个思维为公司建设权限系统。
角色的引入,让权限管理非常灵活。
例如:某个员工要离职了,替换他的是一个新员工,这时你需要一一的告诉该新员工他应该做什么,他不能做什么,当工作项非常多的时候,这将是非常繁琐的过程,且非常容易出错。如果你把这个职位定义为某个角色,且为这个角色分配固定的权限,不管来多少新人,不管什么职位,只要他对号入座,权限自然就根据角色分配好。当新员工升职后,比如升职成主管或经理,你这时只是角色变换,权限自动分配给他。
二、流程图
大概流程图如下:

1、人员属于某个角色,首先给他分配角色,例如:总监、经理、主管、助理等;
2、人员赋予角色后,则给他分配权限,不同的角色,规定有不同的权限。比如:总监级别,能够增删改查,无所不能;而经理级别,只能增改查,如果需要删除,则需要总监审批;主管只有增加和查看,修改需要向经理申请,让经理审批。
3、不同的权限,实际上是对应数据库中的某张表,也就是Django中的某个model。
三、效果图
人员角色分配:

实现效果:
1、登录

2、展示权限页面
经理登录后,具备增删改查权限。

主管登录后,具备增改查权限。

职员登录后,具备查看权限。

四、实现过程
1、人员登录后,先验证用户是否OK;
2、验证用户OK后,则根据人员属于什么角色,进行权限获取,并写入session中;
3、用户登录成功,进入index页面,则根据用户session中的权限,展示不同的页面,正所谓:千人千面;
4、用户根据不同的页面,进行不同的操作。
十二、基于Django实现RBAC权限管理的更多相关文章
- vue基于d2-admin的RBAC权限管理解决方案
前两篇关于vue权限路由文章的填坑,说了一堆理论,是时候操作一波了. vue权限路由实现方式总结 vue权限路由实现方式总结二 选择d2-admin是因为element-ui的相关开源项目里,d2-a ...
- Django实现Rbac权限管理
权限管理 权限管理是根据不同的用户有相应的权限功能,通常用到的权限管理理念Rbac. Rbac 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问, ...
- ThinkPHP中RBAC权限管理的简单应用
RBAC英文全称(Role-Based Access Controller)即基于角色的权限访问控制,简单来讲,一个用户可以拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授 ...
- 基于RBAC权限管理的后台管理系统
在摸爬滚打中渐渐理解了RBAC权限管理是个什么玩意. RBAC的基本概念: **RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构成了访问权限三元 ...
- Spring Security实现RBAC权限管理
Spring Security实现RBAC权限管理 一.简介 在企业应用中,认证和授权是非常重要的一部分内容,业界最出名的两个框架就是大名鼎鼎的 Shiro和Spring Security.由于Spr ...
- 基于EasyUI Treegrid的权限管理资源列表
1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...
- Jenkins配置基于角色的项目权限管理--转
本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Str ...
- 第二十二章 Django会话与表单验证
第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...
- Jenkins配置基于角色的项目权限管理
转自: http://www.cnblogs.com/gao241/archive/2013/03/20/2971416.html, 版权归原作者. 本文将介绍如何配置jenkins,使其可以支持基于 ...
随机推荐
- SQL脚本运行
$v=New-Object -ComObject wscript.shell#也可以使用反单引号(`)字符来强制PowerShell将单引号或双引号解释为文本,0不显示命令提示符窗口$v.run(&q ...
- jenkins+gitlib+git+mysql5.6+sonarqube+sonarrunner
1. sonarrunner配置: 2. 未完待续....
- AllowOverride以及Options相关指令
AllowOverride以及Options相关指令 httpd.conf是Apache的主要配置文件,但是针对每个目录,apache还允许在它们各自的目录下放置一个叫做.htacess的文 ...
- 一、DAO设计模式 二、DAO设计模式的优化 三、JDBC中的事务,连接池的使用
一.DAO设计模式概述###<1>概念 DAO,Data Access Object ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问 ...
- RabbitMQ学习以及与Spring的集成(二)
本文介绍RabbitMQ的一些基本概念. RabbitMQ服务可以安装在独立服务器上,通过配置的账户和ip访问使用.也就是说,RabbitMQ和使用它的应用可以部署在不同的服务器上.RabbitMQ的 ...
- Hibernate学习笔记一之注解
1.@Entiy 实体类注解 2.@Table 映射表 (name=“”)表名 3.@Coulmn @Column( name="columnName"; ...
- 页面中图片以背景图形式展示好还是以img标签形式展示
img和background-image的异同: img是网页结构层面上的标签,页面中多一个img标签就会多一次http请求,且当我们浏览页面时,img标签作为网页结构的一部分,会在浏览器加载结构的过 ...
- BZOJ4522:[CQOI2016]密钥破解(Pollard-Rho,exgcd)
Description 一种非对称加密算法的密钥生成过程如下: 1. 任选两个不同的质数 p ,q 2. 计算 N=pq , r=(p-1)(q-1) 3. 选取小于r ,且与 r 互质的整数 e ...
- 【洛谷】【堆】P1168 中位数
[题目描述:] 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数.即前1,3,5,……个数的中位数. ...
- SQL Server 断开某个数据库所有连接(还原的时候需要)
问题描述: SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决办法: 右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -&g ...