Django项目的权限问题

引子:

  1.为什么需要权限?

  由于用户的身份不同,我们需要根据他的角色来给其赋予不同的权限,以便更好分工且避免责任不明确的问题。

  2.为什么要开发一个权限组件?

  权限问题对于大多数系统都会用到,根据当前实际开发出一套比较完备的权限组件,当业务需要时根据具体业务适当修改,可大量节省开发时间,提高开发效率。

  3.再WEB开发中什么是权限?

  URL约等于权限,给某用户访问某URL的权限,就是给了他该url对应模块的使用权限。

权限设计的步骤

一  权限表的设计

  1.权限表

  

  2.角色表

  3.用户表

二 具体权限逻辑的实现

  1.写登录函数

 1 from django.shortcuts import render, redirect
 2 from rbac import models
 3 from django.conf import settings
 4 def login(request):
 5     if request.method=='POST':
 6         username=request.POST.get('user')
 7         password=request.POST.get('pwd')
      用户校验
8 user=models.UserInfo.objects.filter(name=username,password=password).first() 9 if not user: 10 return render(request,'login.html',{'err_msg':'用户名或密码错误'})
      校验完成后写到session中
11 permission_list=user.roles.filter(permissions__url__isnull=False).values('permissions__url').distinct() 12 request.session[settings.PERMISSION_SESSION_KEY]=list(permission_list) ---->permission_list为一个QuerySet对象,无法进行JSON操作,故须先进行强制转化 13 request.session['user_info']={'id':user.id,'name':user.name} 14 return redirect('/customer/list/') 15 return render(request,"login.html")

  2.

猜你喜欢

转载自www.cnblogs.com/wdbgqq/p/9759583.html