如何设计制作一般企业网站,网站建设合同需要印花税,建设部网站关于公租房,wordpress 插件里有中文权限控制是web中的重要组成部分。与以往的博客系统不同#xff0c;本次工具页面仅支持注册用户。
每个注册用户都能访问到工具页面#xff0c;并且提交自己的task来选择具体的工具来处理自己提交的文件。每个注册用户都只能访问到自己提交的task#xff0c;而管理员则可以查…权限控制是web中的重要组成部分。与以往的博客系统不同本次工具页面仅支持注册用户。
每个注册用户都能访问到工具页面并且提交自己的task来选择具体的工具来处理自己提交的文件。每个注册用户都只能访问到自己提交的task而管理员则可以查看所有task。 1. 权限控制
我们先来设置工具相关页面权限我们规定只有注册用户才能访问
全局权限控制
修改setting添加在installed_apps之后
# settings.py
REST_FRAMEWORK {DEFAULT_PERMISSION_CLASSES:[rest_framework.permissions.IsAuthenticated,]
}
限制访问最简单的权限是允许通过身份验证的用户访问并拒绝未经身份验证的用户访问这对应于rest_framework中的IsAuthenticated类。
自定义权限控制
在views中添加permissions信息
#simpletool/views.pyfrom simpletool.permissions import IsAuthenticatedOrAdmin
# Create your views here.class simpletoolList(generics.ListCreateAPIView):queryset simpleTool.objects.all()serializer_class ToolListSerializerpermission_classes [IsAuthenticatedOrAdmin]class simpletoolDetail(generics.RetrieveUpdateDestroyAPIView):queryset simpleTool.objects.all()serializer_class ToolDetailSerializerpermission_classes [IsAuthenticatedOrAdmin]
补充permissions.py文件
from rest_framework import permissionsclass IsAuthenticatedOrAdmin(permissions.IsAuthenticated):def has_permission(self, request, view):# 对注册用户开放操作# if request.method in permissions.SAFE_METHODS:if (request.user.is_authenticated) and (request.method in permissions.SAFE_METHODS): return True# 仅管理员可进行其他操作return request.user.is_superuserpermission_classes 可以接收一个列表因此权限控制类可以设置多个请求必须满足所有控制条件才允许被放行。
现在来让我们看一下直接访问时的状况
http http://127.0.0.1:8000/api/simpletool/ 创建一个普通用户 测试权限
http -a john:123456 http://127.0.0.1:8000/api/simpletool/ 测试PUT权限
http -a john:123456 POST http://127.0.0.1:8000/api/simpletool/ titletest_tool 管理员权限测试
http -a xiaofan0101:123456 POST http://127.0.0.1:8000/api/simpletool/ titletest_tool