django-auth组件的权限管理
一:自定义权限验证
1.在model中的Meta类自定义权限码
class WorkUser(models.Model):
username = models.CharField(u'用户名', max_length=10, unique=True)
_password = models.CharField(u'密码', max_length=50, null=False)
gender = models.CharField(u'性别', max_length=2, default=u'未知', null=False) class Meta: permissions = (
("view_gender", "显示性别"), # 在Meta中自定义权限码
)
2.判断用户是否有权限码
class OtherPageAuth(LoginRequiredMixin, View):
"""
用户是否已经验证
from django.contrib.auth.mixins import LoginRequiredMixin
指定局部的跳转url: login_url = "/work/auth_login"
全局: settings中 LOGIN_URL = '/work/auth_login'
"""
login_url = "/work/auth_login" # 没登录跳转到登陆界面,登录则正常执行
def get(self, request):
print request.user.usere_permissons.all() # 用户的所有权限
'''
request.user.has_perm #判断用户是否拥有某个权限
request.user.has_perms([perms,]) # 判断用户是否有权限列表中的某个权限
'''
if request.user.has_perm("work_register.view_gender"): # app下的权限码
message = "you can do this"
else:
message = "don\'t move anywhere "
print message
return render(request, 'logok.html', locals())
二:视图的权限 继承PermissionRequiredMixin
class OtherPageAuth(LoginRequiredMixin, PermissionRequiredMixin, View):
"""
用户是否已登录的验证,和用户是否有权限的判断
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
指定局部的跳转url: login_url = "/work/auth_login"
全局: settings中 LOGIN_URL = '/work/auth_login'
"""
# 单个权限 work_register为app名字
permission_required = "work_register.view_gender" # 没有权限就直接跳转 /work/auth_login 登陆页面
# 多个权限 多个权限都满足才行
# permission_required = ("work_register.permission_code1", "work_register.permission_code2")
login_url = "/work/auth_login" # 没登录跳转到登陆界面,登录则正常执行
def get(self, request):
return render(request, 'logok.html', locals())
django-auth组件的权限管理的更多相关文章
- Django web框架之权限管理一
1. 需求分析: 准备:创建独立app, rbac #权限管理模块/组件 app01 #应用 分配权限,URL 2. 数据库设计 2.1 设计思路 第一版: 权限表: ID url title is_ ...
- Django基础篇--用户权限管理和组管理
Django作为一个成熟的python后台开发框架,为开发者提供了很多内置的功能,开发者只需要做一些配置就可以完成原生操作中比较复杂的代码编写.这些内置功能中其中一个比较强大的功能就是后台用户管理类. ...
- Django【进阶】权限管理
一.权限 RBAC:role basic access control 1.什么是权限: 一个权限就是一个url,不同个权限对应不同的url,拥有权限即可以访问这个url. 2.权限划分: 如 ...
- tp5.1 Auth类实现权限管理
了解来这么久权限控制权限的知识,却不知道如何写代码,网上的代码多数并没有多少完整的源码能提供参考.偶然看到官网的例子,现在终于也把源码的实现也弄得明白了一点. tp5框架的Auth类可以实现页面的访问 ...
- Django web框架之权限管理二
1. login登录 def login(request): if request.method=="GET": return render(request,'login.html ...
- Django Auth组件->扩展用户
Auth用户 1.声明用户表 djangauth/settings.py..............................AUTH_USER_MODEL = 'app01.UserInfo' ...
- Django auth组件拓展 关联外部信息---------------------------- Profile 模式
https://docs.djangoproject.com/en/2.1/topics/auth/customizing/ 官方文档. 网上的get_profile 方法不好用太假了 可能我没用明白 ...
- Django实现Rbac权限管理
权限管理 权限管理是根据不同的用户有相应的权限功能,通常用到的权限管理理念Rbac. Rbac 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问, ...
- Admin后台权限管理、三大认证
目录 APIView的请求生命周期 三大认证规则 权限六表 自定义User表 详细配置演示 models.py setting.py admin.py 使用过程: 控制填写信息的字段 控制添加权限 控 ...
随机推荐
- StringUtils 正则校验
public class StringUtils { /** * 如果str为null,返回“”,否则返回str * @param str * @return */ public static Str ...
- Java网络编程和NIO详解3:IO模型与Java网络编程模型
Java网络编程和NIO详解3:IO模型与Java网络编程模型 基本概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32 ...
- IOS-网络(JSON解析数据与XML解析数据)
一.JSON解析数据 // // VideoModel.h // IOS_0130_网络视频 // // Created by ma c on 16/1/30. // Copyright © 2016 ...
- 十款效果惊艳的Html案例(一)
http://www.html5tricks.com/10-html5-image-effect.html
- TWain 在 Qt4 中的调用方法
1.开发环境 Windows7_sp1_x64 Qt4.7.4 + mingw32 twain_32.dll (1.7.1.3) 2.常用缩写 DSM: Data Source Manager 数据源 ...
- iOS笔记之ScrollView
ScrollView三个基本的要理解的属性: contentSize The size of the content view.所以很好理解,contentSize也就是scrollView可滚动的区 ...
- Struts2基本使用(一)--在项目中引入Struts2
Struts2基本使用 在MVC开发模式中,Struts2充当控制器(Controller)的角色.其主要功能就是处理用户请求,生成响应,是连接视图层(View)和模型层(Model)的桥梁.在处理用 ...
- 【java基础】java字符串之StringBuffer和StringBuilder
[一]简述区别 package com.sxf.test.string; public class StringBufferStringBuilderTest { public static void ...
- Linux下sniffer实现(转)
转发网址:https://blog.csdn.net/eqiang8271/article/details/8489769 //Example 1. #include <stdio.h> ...
- ringojs 基于jvm 的javascript 平台试用
ringojs 是一个基于jvm 的javascript 平台,支持commonjs 模块模式 安装 下载包配置环境变量,或者使用docker,测试使用docker dockerfile deb 包安 ...