修复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