Merge remote-tracking branch 'origin/v2.x' into v2.x
commit
937465b617
|
@ -23,7 +23,7 @@ class MenuSerializer(CustomModelSerializer):
|
||||||
menuPermission = serializers.SerializerMethodField(read_only=True)
|
menuPermission = serializers.SerializerMethodField(read_only=True)
|
||||||
|
|
||||||
def get_menuPermission(self, instance):
|
def get_menuPermission(self, instance):
|
||||||
queryset = MenuButton.objects.filter(menu=instance.id).order_by('-name').values_list('name', flat=True)
|
queryset = instance.menuPermission.order_by('-name').values_list('name', flat=True)
|
||||||
if queryset:
|
if queryset:
|
||||||
return queryset
|
return queryset
|
||||||
else:
|
else:
|
||||||
|
@ -65,7 +65,7 @@ class MenuInitSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
def get_menu_button(self, obj: Menu):
|
def get_menu_button(self, obj: Menu):
|
||||||
data = []
|
data = []
|
||||||
instance = MenuButton.objects.filter(menu_id=obj.id).order_by('method')
|
instance = obj.menuPermission.order_by('method')
|
||||||
if instance:
|
if instance:
|
||||||
data = list(instance.values('name', 'value', 'api', 'method'))
|
data = list(instance.values('name', 'value', 'api', 'method'))
|
||||||
return data
|
return data
|
||||||
|
@ -124,11 +124,11 @@ class WebRouterSerializer(CustomModelSerializer):
|
||||||
def get_menuPermission(self, instance):
|
def get_menuPermission(self, instance):
|
||||||
# 判断是否是超级管理员
|
# 判断是否是超级管理员
|
||||||
if self.request.user.is_superuser:
|
if self.request.user.is_superuser:
|
||||||
return MenuButton.objects.values_list('value', flat=True)
|
return instance.menuPermission.values_list('value', flat=True)
|
||||||
else:
|
else:
|
||||||
# 根据当前角色获取权限按钮id集合
|
# 根据当前角色获取权限按钮id集合
|
||||||
permissionIds = self.request.user.role.values_list('permission', flat=True)
|
permissionIds = self.request.user.role.values_list('permission', flat=True)
|
||||||
queryset = MenuButton.objects.filter(id__in=permissionIds, menu=instance.id).values_list('value', flat=True)
|
queryset = instance.menuPermission.filter(id__in=permissionIds, menu=instance.id).values_list('value', flat=True)
|
||||||
if queryset:
|
if queryset:
|
||||||
return queryset
|
return queryset
|
||||||
else:
|
else:
|
||||||
|
@ -136,7 +136,8 @@ class WebRouterSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Menu
|
model = Menu
|
||||||
fields = "__all__"
|
fields = ('id', 'parent', 'icon', 'sort', 'path', 'name', 'title', 'is_link', 'is_catalog', 'web_path', 'component',
|
||||||
|
'component_name', 'cache', 'visible', 'menuPermission')
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,7 +156,7 @@ class MenuViewSet(CustomModelViewSet):
|
||||||
update_serializer_class = MenuCreateSerializer
|
update_serializer_class = MenuCreateSerializer
|
||||||
search_fields = ['name', 'status']
|
search_fields = ['name', 'status']
|
||||||
filter_fields = ['parent', 'name', 'status', 'is_link', 'visible', 'cache', 'is_catalog']
|
filter_fields = ['parent', 'name', 'status', 'is_link', 'visible', 'cache', 'is_catalog']
|
||||||
extra_filter_backends = []
|
# extra_filter_backends = []
|
||||||
|
|
||||||
@action(methods=['GET'], detail=False, permission_classes=[])
|
@action(methods=['GET'], detail=False, permission_classes=[])
|
||||||
def web_router(self, request):
|
def web_router(self, request):
|
||||||
|
|
Loading…
Reference in New Issue