修复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"没有此数据操作权限!"
|
self.message = f"没有此数据操作权限!"
|
||||||
res = self.check_queryset(request, instance)
|
res = self.check_queryset(request, instance)
|
||||||
return res
|
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.request import Request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from .permissions import CommonPermission
|
from .permissions import CommonPermission, DeptDestroyPermission
|
||||||
from ..op_drf.filters import DataLevelPermissionsFilter
|
from ..op_drf.filters import DataLevelPermissionsFilter
|
||||||
from ..op_drf.viewsets import CustomModelViewSet
|
from ..op_drf.viewsets import CustomModelViewSet
|
||||||
from ..permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
|
from ..permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
|
||||||
|
@ -129,7 +129,7 @@ class DeptModelViewSet(CustomModelViewSet):
|
||||||
filter_class = DeptFilter
|
filter_class = DeptFilter
|
||||||
extra_filter_backends = [DataLevelPermissionsFilter]
|
extra_filter_backends = [DataLevelPermissionsFilter]
|
||||||
update_extra_permission_classes = (CommonPermission,)
|
update_extra_permission_classes = (CommonPermission,)
|
||||||
destroy_extra_permission_classes = (CommonPermission,)
|
destroy_extra_permission_classes = (CommonPermission, DeptDestroyPermission)
|
||||||
create_extra_permission_classes = (CommonPermission,)
|
create_extra_permission_classes = (CommonPermission,)
|
||||||
search_fields = ('deptName',)
|
search_fields = ('deptName',)
|
||||||
ordering = 'create_datetime' # 默认排序
|
ordering = 'create_datetime' # 默认排序
|
||||||
|
|
Loading…
Reference in New Issue