2.4.3、Django用户权限控制

上面已经实现了登录和注销功能,但是还没起作用。

我们需要在每个视图函数里加上限制@login_required

如下:

from django.contrib.auth.decorators import login_required

... ...

@login_required

def data_daka(request):

all = class.objects.all()

... ...

login_required实现了如下功能:

如果用户没有登录, 重定向到/accounts/login/,并且把当前绝对URL作为next参数用get方法传递过去;

如果用户已经登录, 正常地执行视图函数。

这样我们例子中需要的功能就实现了。但是这充其量是“登录限制”,而更常见的需求是“访问控制”,即区分已经登录的用户,对不同的视图有不同的访问权限。因为我们的例子中没有涉及到,所以只把相关的做法简单例举在下面。

1.访问控制功能通过Django的 request.user.has_perm() 来实现,该函数返回True或False,表示该用户是否有权限。而权限是auth 应用中定义的Permission类型;User与Permission是many-to-many的关系。

2. Django还提供了一个@permission_required修饰符,来限定view函数只有在User具有相应权限的情况下才能被访问。

3. Django对于每个模型类,自动增加add、change、delete三种权限,以便于权限控制。当然你也可以设定自己的权限。

2.4.3、Django用户权限控制

时间: 2024-12-28 10:10:51

2.4.3、Django用户权限控制的相关文章

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

若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ-LQJ/p/5604331.html 现在步入正题,这篇文章是关于自有权限管理系统设计的思路描述,自有权限管理系统是抛弃django自带的后台管理界面,基于自己编写的权限管理界面对用户权限的管理! 首先上图:(自己设计的权限系统界面,代码将后续文章中写出) 权限管理界面主要是添加和删除权限,查看官方

springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

项目结构: 1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <dependency>     <groupid>javax.servlet</groupid>     javax.servlet-api</artifactid>     <version>3.0.1</version>

用户权限控制之命令篇

背景:如果数据库启动没有启用权限控制,那么只要通过IP,PORT就能连上,危险性很高,所有要设置用户访问权限.一.在未设置权限状态下,增加访问用户.> use adminswitched to db admin>db.system.users.find()> db.createUser( {user:"myUserAdmin",pwd:"abc123",roles:[{role:"readWriteAnyDatabase",db

django用户权限操作

第一步:创建数据库和超级管理员,为了比较方便使用(里面有些的是没用的),额外新增 chioces , per_method , argument_list # 用户权限# 建立一个权限表,将映射关系存到数据库中class Permission(models.Model): identifier = models.CharField(max_length=40, unique=True) USERNAME_FIELD = 'identifier' name = models.CharField("

如何通过excel实现用户权限控制

在程序设计中,为了让程序更好的适应每个用户的不同需求,我们经常需要给角色设置一定权限,权限的设置有很多的方式,这篇文章主要介绍一下如何通过excel表格来设置用户权限. 我们现在要实现一个功能,不同用户登录以后,下拉框中显示不同的城市,这里的城市是已经配置好的城市. 原来的城市是没有添加任何权限的,显示效果如下: 实现代码如下: ProjectCityWrapperCollection projectCityCollection = ExternalDataHelper.GetProjectCi

Mysql用户权限控制(5.7以上版本)

1.1. 最简单的MySql权限   最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 以下内容如果看官是大牛,请稍安勿躁,我讲内容的方式是从简单到入门,从入门到进阶,从进阶到实战,从实战到...(包你满意) 使用Root用户,执行 grant SELECT on mall.* TO 'dev'@'192.168.244.%' IDENTIFIED BY '123' WITH GRANT OP

MongoDB 3.X 用户权限控制

摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有一个local库,admin库是不存在的: [email protected]:/usr/local/mongo4# mongo --port=27020 MongoDB shell version: 3.0.4 connecting to: 127.0.0.1:27020/tes

Oracle系列:(26)用户权限控制

1.用户 Oracle中的用户分为二大类 1)Oracle数据库服务器创建时,由系统自动创建的用户,叫系统用户,如sys. 2)利用系统用户创建的用户,叫普通用户,如scott,hr,c##tiger,zhaojun,... >用sys登录,查询当前Oracle数据库服务器中已有用户的名字和状态 username表示登录名 expired&locked表示帐号过期和锁定 open表示帐号现在可用   sqlplus / as sysdba;   col username for a30;  

mongodb 用户权限控制

MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local.local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use