修复BUG(删除部门): 部门里面存在用户,依然能够删除部门
Closes https://gitee.com/liqianglog/django-vue-admin/issues/I3E2BQpull/11/head
parent
3708ce73e6
commit
d41eb5cc2c
|
@ -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
|
||||
|
|
|
@ -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' # 默认排序
|
||||
|
|
Loading…
Reference in New Issue