mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-07 16:41:48 -05:00
Add value type validation to sublist (un)attach
This commit is contained in:
@@ -461,13 +461,24 @@ class SubListCreateAttachDetachAPIView(SubListCreateAPIView):
|
||||
})
|
||||
return d
|
||||
|
||||
def attach_validate(self, request):
|
||||
sub_id = request.data.get('id', None)
|
||||
res = None
|
||||
if sub_id and not isinstance(sub_id, int):
|
||||
data = dict(msg=_('"id" field must be an integer.'))
|
||||
res = Response(data, status=status.HTTP_400_BAD_REQUEST)
|
||||
return (sub_id, res)
|
||||
|
||||
def attach(self, request, *args, **kwargs):
|
||||
created = False
|
||||
parent = self.get_parent_object()
|
||||
relationship = getattrd(parent, self.relationship)
|
||||
sub_id = request.data.get('id', None)
|
||||
data = request.data
|
||||
|
||||
sub_id, res = self.attach_validate(request)
|
||||
if res:
|
||||
return res
|
||||
|
||||
# Create the sub object if an ID is not provided.
|
||||
if not sub_id:
|
||||
response = self.create(request, *args, **kwargs)
|
||||
@@ -515,6 +526,9 @@ class SubListCreateAttachDetachAPIView(SubListCreateAPIView):
|
||||
if not sub_id:
|
||||
data = dict(msg=_('"id" is required to disassociate'))
|
||||
res = Response(data, status=status.HTTP_400_BAD_REQUEST)
|
||||
elif not isinstance(sub_id, int):
|
||||
data = dict(msg=_('"id" field must be an integer.'))
|
||||
res = Response(data, status=status.HTTP_400_BAD_REQUEST)
|
||||
return (sub_id, res)
|
||||
|
||||
def unattach_by_id(self, request, sub_id):
|
||||
|
||||
Reference in New Issue
Block a user