[Django]用户权限学习系列之设计自有权限管理系统设计思路

若在阅读本片文章遇到权限操作问题,请查看本系列的前两章!

http://www.cnblogs.com/CQ-LQJ/p/5609690.htmlhttp://www.cnblogs.com/CQ-LQJ/p/5604331.html

现在步入正题,这篇文章是关于自有权限管理系统设计的思路描述,自有权限管理系统是抛弃django自带的后台管理界面,基于自己编写的权限管理界面对用户权限的管理!

首先上图:(自己设计的权限系统界面,代码将后续文章中写出)

权限管理界面主要是添加和删除权限,查看官方文档可知道permission有三个字段,content_type_id(权限类型),codename(权限名称),name(权限描述)

查看上图,可知权限名称显示的中文,django后台自带的是英文,如下图:

当然其中的中文是我自己添加进去的,采用中文的好处还有一个,就是可以通过后台利用正则表达式筛选出只是中文的权限,这样就可以不用显示出英文的权限导致用户看不懂了,中文的正则是[\u4e00-\u9fa5].

后台view查询中文权限代码如下:

#匹配中文权限(单个查询)
c = Permission.objects.get(codename__iregex=u‘[\u4e00-\u9fa5]‘)
print c
#匹配中文权限(全部查询)
Permission.objects.filter(codename__iregex=u‘[\u4e00-\u9fa5]‘).values()

用户管理界面是添加用户和对用户进行权限分配操作,如下图:

或许有人会问道,用户权限配置好后,如何实现对一个网页或者操作的权限控制呢?

其实代码和django官网中差不多,在模板中检验权限代码如下:

 {% if perms.auth.业务发展 %}
 <p class="text-center"><a href="{% url ‘keywork‘ %}">业务发展</a></p>
 {% else %}
<p class="text-center"><a href="javascript:alert(‘无权限,请联系管理员!‘)">业务发展</a></p>
{% endif %}

view中检验权限如下

u = User.objects.get(username=‘账号‘)
u.has_perm(u"auth.\u4e1a\u52a1\u53d1\u5c55")

上面这种,需要先用b = list(User.objects.get(username=‘账号‘).get_all_permissions())查看权限的中文对应pyhton中显示的代码

具体制作过程,将在后续的文章中慢慢展开,为了给大家还原一个开发权限系统的真是过程,而不是只贴一大代码上来(ps:自己以前就是这样的)......

时间: 2024-10-25 16:41:16

[Django]用户权限学习系列之设计自有权限管理系统设计思路的相关文章

Git学习系列总结及博客全目录

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45849615 Git是一个分布式版本控制软件,它是由Linux的作者Linus用C写的一个分布式版本控制系统. Git主要特点 1.速度:Git在本地上保存着所有当前项目的版本和更新,并且Git中的绝大多数操作都在本地,无需连网,所以处理起来速度. 2.简单的设计:Git的实现与项目复杂度无关,它永远可以在几毫秒的时间内完成分支的创建和切换. 3.完全分布式模式:每个人电脑上都有一个完整

FineBI学习系列之FineBI与IBM DB2数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-562.html 目录: 1.描述 2.操作 3.注意事项 1.描述 IBM DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下. DB2提供了高层次的数据利用性.完整性.安全性.可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令

FineBI学习系列之FineBI与IBM Informix数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-563.html 目录: 1.描述 2.操作 1.描述 Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族.作为一个集成解决方案,它被定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统.下面我们介绍如何在FineBI中连接Informix数据库. 2.操作 2.1 配置信息 驱动     URL  

FineBI学习系列之FineBI与HBase数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-584.html 目录: 1.描述 2.操作 3.注意事项 1.描述 Hbase作为大数据平台的重要组成部分,在数据存储方面起到了至关重要的作用,因此BI连接Hbase也是必不可少的功能之一.FineBI提供的方法是通过phoenix连接hbase,下面我们将详细介绍如何进行连接. 2.操作 2.1 配置信息   驱动 URL

SpringMVC学习系列(9) 之 实现注解式权限验证

对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现.但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证. 一.首先介绍一下action拦截器: HandlerInterceptor是Spring MVC为我们提供的拦截器接口,来让我们实现自己的处理逻辑,HandlerInterceptor 的内容如下: public interface Handl

sharepoint 2016 学习系列篇(15)-自定义列表应用篇-(4)数据权限配置

当数据已经录入到列表中之后,接下来,朋友们可能会想知道,有些数据,只想给某些用户看到,或者编辑,列表是否支持这样的操作. 大微软的sharepoint平台,对于用户的需求,可以说是考虑得很周全的,权限管理,当然也是不可能漏掉的,而且权限管理,还是sharepoint上一个非常突出的亮点,数据安全性管理的颗粒度,很完善.接下来,我们来看下,如何在sharepoint的自定义列表中,给数据配置不同的用户访问权限,这些当然也是不需要开发,就能实现的. 前面讲到,用户访问sharepoint平台网站的时

Django用户认证系统(三)组与权限

Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyToManyField字段,groups和user_permissions groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, help_text=_('The groups this user bel

Web用户的身份验证及WebApi权限验证流程的设计和实现

前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权限验证来实现Web系统登录,Mvc前端权限校验以及WebApi服务端的访问校验功能. 1. Web Form认证介绍 Web应用的访问方式因为是基于浏览器的Http地址请求,所以需要验证用户身份的合法性.目前常见的方式是Form认证,其处理逻辑描述如下:1. 用户首先要在登录页面输入用户名和密码,然

linux用户、组和权限——学习笔记

linux用户.组和权限--学习笔记 1.linux用户user 2.linux组group 3.用户和组的配置文件 3.1.Passwd文件格式 3.2.shadow 文件格式 3.3.group文件格式 3.4.gshdow文件格式 4.用户和组管理命令 4.1.用户管理命令 4.2.组帐号维护命令 4.3.用户创建:useradd 4.4.小实验 4.5.用户属性修改 4.6.删除用户 4.7.查看用户相关的ID 信息 4.8.切换用户或以其他用户身份执行命令 4.9.设置密码 4.10.