关于后台管理权限的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于后台管理权限的问题相关的知识,希望对你有一定的参考价值。

我的问题是:当一个管理员登录进去,他只能看到和管理自己要管理的那个区域的信息,不能看到和管理别人的区域。我举个例子:就好比我们学生进去成绩管理系统,我们登录进去就只看到和查询自己的成绩,别人的是看不到的。

还是我来回答你的问题吧!

这样的权限控制分为页面权限和数据权限,所谓的页面权限就是比如 后台有个 高级管理 的页面 只有高级管理员能进入,普通管理员进不去

而你说的只能看见自己的成绩是数据权限,数据权限 可以在 查询的时候在查询语句后面加上当前登录用户 来进行过滤,and user=session['username'] 类似这样就只出来自己的了

针对数据权限,还有不是针对单独个人的,比如一个通知模块我只想老师看见,而所有的学生是看不见的,这个时候是针对组或者角色的权限控制,可以将用户分成不同的组,比如学生 老师 管理员 然后在判断的时候 首先查看当前的用户的组 是否满足查看改模块的权限 ,当然 页面权限大多也是这样根据角色来判断的,是否显示菜单给改角色组,首先没有权限不显示菜单出来,人家就点击不进去那个页面,当然页面里面也要判断下,防止人家知道网址直接输入了进入!
参考技术A dw里面有分级的 可以在数据库专门创建一列, 例如 root 是分级是1 可以看到全部 user1 的分级是2 可以看到 除增加删除管理员以外的所有选项。
应该是可以基于session 和cookies的

[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:自己以前就是这样的)......

 

以上是关于关于后台管理权限的问题的主要内容,如果未能解决你的问题,请参考以下文章

浅识RBAC

ASP.NET如何制作后台权限管理

后台管理的权限

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

如何设置后台管理员的权限详细请进来看

权限管理:菜单管理