mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-29 21:51:31 +00:00
fix: 修复作业中心资产和用于没有过滤授权规则的问题
This commit is contained in:
@@ -3,7 +3,7 @@ import uuid
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from assets.models import Node
|
||||
from assets.models import Node, Asset
|
||||
from perms.utils.user_perm import UserPermAssetUtil
|
||||
from common.serializers.fields import ReadableHiddenField
|
||||
from ops.mixin import PeriodTaskSerializerMixin
|
||||
@@ -17,6 +17,8 @@ class JobSerializer(BulkOrgResourceModelSerializer, PeriodTaskSerializerMixin):
|
||||
nodes = serializers.ListField(required=False, child=serializers.CharField())
|
||||
date_last_run = serializers.DateTimeField(label=_('Date last run'), read_only=True)
|
||||
name = serializers.CharField(label=_('Name'), max_length=128, allow_blank=True, required=False)
|
||||
assets = serializers.PrimaryKeyRelatedField(label=_('Assets'), queryset=Asset.objects.all(), many=True,
|
||||
required=False)
|
||||
|
||||
def to_internal_value(self, data):
|
||||
instant = data.get('instant', False)
|
||||
@@ -30,6 +32,12 @@ class JobSerializer(BulkOrgResourceModelSerializer, PeriodTaskSerializerMixin):
|
||||
user = request.user if request else None
|
||||
return user
|
||||
|
||||
def validate_assets(self, assets):
|
||||
permed_assets = UserPermAssetUtil(self.get_request_user()).get_all_assets()
|
||||
if not set(assets).issubset(set(permed_assets)):
|
||||
raise serializers.ValidationError(_('Assets not in user perm'))
|
||||
return assets
|
||||
|
||||
def create(self, validated_data):
|
||||
assets = validated_data.__getitem__('assets')
|
||||
node_ids = validated_data.pop('nodes', None)
|
||||
|
||||
Reference in New Issue
Block a user