修复BUG(删除部门): 部门里面存在用户,依然能够删除部门

Closes https://gitee.com/liqianglog/django-vue-admin/issues/I3E2BQ
pull/11/head
李强 2021-03-29 23:36:59 +08:00
parent 3708ce73e6
commit d41eb5cc2c
2 changed files with 22 additions and 2 deletions

View File

@ -93,3 +93,23 @@ class CommonPermission(CustomPermission):
self.message = f"没有此数据操作权限!"
res = self.check_queryset(request, instance)
return res
class DeptDestroyPermission(CustomPermission):
"""
部门删除权限校验判断部门下是否有用户存在存在不可删除
"""
message = '没有有操作权限'
def has_permission(self, request: Request, view: APIView):
return True
def check_queryset(self, request, instance):
if instance.values_list('userprofile', flat=True):
self.message = "该部门下有关联用户,无法删除!"
return False
return True
def has_object_permission(self, request: Request, view: APIView, instance):
res = self.check_queryset(request, instance)
return res

View File

@ -2,7 +2,7 @@ from django.contrib.auth import authenticate
from rest_framework.request import Request
from rest_framework.views import APIView
from .permissions import CommonPermission
from .permissions import CommonPermission, DeptDestroyPermission
from ..op_drf.filters import DataLevelPermissionsFilter
from ..op_drf.viewsets import CustomModelViewSet
from ..permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
@ -129,7 +129,7 @@ class DeptModelViewSet(CustomModelViewSet):
filter_class = DeptFilter
extra_filter_backends = [DataLevelPermissionsFilter]
update_extra_permission_classes = (CommonPermission,)
destroy_extra_permission_classes = (CommonPermission,)
destroy_extra_permission_classes = (CommonPermission, DeptDestroyPermission)
create_extra_permission_classes = (CommonPermission,)
search_fields = ('deptName',)
ordering = 'create_datetime' # 默认排序