1.django的权限控制相关表及其相互间的关系:

django的所有权限信息存放在auth_permission表中,用户user和用户组group都可以有对应的权限permission。分别存放在auth_group_permissions和auth_user_user_permission中。相互间以id进行对应。

2.权限的配置

需要在各个应用的model.py中进行配置,下面的是一个例子:

  1. class Task(models.Model):
  2. ....
  3. class Meta:
  4. permissions = (
  5. ('operate_task','can operate the tasks'),
  6. )

上面就新建了一个operate_task权限,然后运行django的sync同步一下数据库,权限就会被添加到auth_permission表中了。

3.权限控制的使用方法示例:

1)用户和用户组之间的操作

  1. myuser.user_permissions = [permission_list] #用户权限点列表
  2. myuser.user_permissions.add(permission, permission, ...) #为用户添加权限
  3. myuser.user_permissions.remove(permission, permission, ...) #为用户删除权限
  4. myuser.user_permissions.clear() #删除用户的所有权限

2)用户组的权限操作

  1. mygroup.permissions =[permission_list]
  2. mygroup.permissions.add(permission, permission, ...)
  3. mygroup.permissions.remove(permission, permission, ...)
  4. mygroup.permissions.clear()             

3)判断用户是否有某个权限,权限名为应用名加上权限名,用'.'分隔。

  1. myuser.has_perm('foo.add_bar')
  2. myuser.has_perm('foo.change_bar')
  3. myuser.has_perm('foo.delete_bar')

4.简单真实示例:

  1. >>> from django.contrib.auth.models import User,Group,Permission
  2. >>> alice=User.objects.get(username='alice')
  3. >>> alice.user_permissions
  4. <django.db.models.fields.related.ManyRelatedManager object at 0x0000000003B82EF
  5. >
  6. >>> alice.user_permissions.all()
  7. []
  8. >>> alice.groups.all()
  9. [<Group: test>]
  10. >>> alice.groups.all()[0].permissions.all()

ok!

django自带权限控制系统的使用和分析的更多相关文章

  1. django自带权限机制

    1. Django权限机制概述 权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮.因此,基于Django的开发,理清Django权限机制是 ...

  2. Django中的权限系统

    Django中已经为我们设置好了基本的权限系统,在定义好model同步数据库后,在每个库下面都会有一张 'auth_permission' 表.该表里面记录了每条权限的描述(name字段,can do ...

  3. Django自带的用户认证auth模块

    一.介绍 基本上在任何网站上,都无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能. 使用Django,我们可以不需要自己写这些功能,因为Dj ...

  4. Django 自带认证功能auth模块和User对象的基本操作

    一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    ...

  5. (30)auth模块(django自带的用户认证模块)

    Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...

  6. [py][mx]django自带后台系统使用

    django的manytomany字段和后台搜索过滤功能 后台开发一般要求 后台要求能快速搭建, 主要精力放在前端用户系统开发上. 权限管理 少量样式 快速开发 django自带的后台手动注册模型 创 ...

  7. Django自带的用户认证

    1. 创建超级用户   python manage.py createsuperuser   2. 认证  校验用户名和密码  obj = auth.authenticate(request,user ...

  8. Django自带表User认证详解

    认证登陆(附方法实现代码,百度网盘拉取即可下载,激活码:gqt1) 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然 ...

  9. ASP.net MVC 基于角色的权限控制系统的实现

    一.引言 我们都知道ASP.net mvc权限控制都是实现AuthorizeAttribute类的OnAuthorization方法. 下面是最常见的实现方式: public class Custom ...

随机推荐

  1. jsp 文件下载

    有的时候一个模板的下载,这种简单的下载服务端已存在文件功能,就可以方便的通过jsp文件下载的方式来轻松实现. //jsp 页面 js /** * 导出角色 */ function exportRole ...

  2. JSP学习笔记 - 内置对象 Request

    1.主要掌握以下5个内置对象及其所属类,必须学会在java docs里根据类名查找相应的方法 request     javax.servlet.http.HttpServletRequest res ...

  3. 【VHDL】组合逻辑电路和时序逻辑电路的区别

    简单的说,组合电路,没有时钟:时序电路,有时钟. ↓ 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能. ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?组合逻辑中可能生成锁 ...

  4. iOS 中可用的受信任根证书列表

    iOS 中可用的受信任根证书列表 iOS 受信任证书存储区中包含随 iOS 一并预装的受信任根证书. 关于信任和证书 以下所列的各个 iOS 受信任证书存储区均包含三类证书: “可信”的证书用于建立信 ...

  5. 批量obj格式直接转gltf

    在cesium中的模型需要的是gltf或glb格式的文件,之前的做法是用将模型从3d max中导出dae格式的文件(需要插件),然后用collada2gltf工具将dae格式转成gltf. 最近翻看c ...

  6. [测试工具]----iperf

    iperf https://sourceforge.net/projects/iperf/ http://downloads.es.net/pub/iperf/ https://github.com/ ...

  7. 00.pip安装包

    pip安装更换镜像源 pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pip导出和导入 ...

  8. CentOS7下安装ELK三件套

    ELK用于分布式收集,然后elasticsearch用于分析数据,在Kibana中可以查看数据.报表. 目前公司日志数据量暂时不使用elasticsearch集群,只是用的elasticsearch单 ...

  9. (蓝桥杯)第八届A组C/C++跳蚱蜢

    #include<iostream> #include<memory.h> #include<stack> #include<string> #incl ...

  10. bupt summer training for 16 #1 ——简单题目

    D.What a Mess 给n个数,求其中能满足 a[i] % a[j] == 0 的数对之和 n = 1W,max_ai = 100W 不是很大,所以就直接筛就可以了 计算可得最高复杂度 < ...