mirror of
https://github.com/ansible/awx.git
synced 2026-03-09 05:29:26 -02:30
Update UJ/UJT endpoints, update approval RBAC, update approval timeout
This commit is contained in:
@@ -3414,15 +3414,16 @@ class WorkflowApprovalSerializer(UnifiedJobSerializer):
|
||||
|
||||
can_approve_or_deny = serializers.SerializerMethodField()
|
||||
approval_expiration = serializers.SerializerMethodField()
|
||||
timed_out = serializers.ReadOnlyField()
|
||||
|
||||
class Meta:
|
||||
model = WorkflowApproval
|
||||
fields = (['*', '-controller_node', '-execution_node', 'can_approve_or_deny', 'approval_expiration'])
|
||||
fields = ('*', '-controller_node', '-execution_node', 'can_approve_or_deny', 'approval_expiration', 'timed_out',)
|
||||
|
||||
def get_approval_expiration(self, obj):
|
||||
if obj.status != 'pending' or obj.timeout == 0:
|
||||
return None
|
||||
return now() + timedelta(seconds=obj.timeout)
|
||||
return obj.created + timedelta(seconds=obj.timeout)
|
||||
|
||||
def get_can_approve_or_deny(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
@@ -3442,20 +3443,8 @@ class WorkflowApprovalSerializer(UnifiedJobSerializer):
|
||||
|
||||
class WorkflowApprovalListSerializer(WorkflowApprovalSerializer, UnifiedJobListSerializer):
|
||||
|
||||
can_approve_or_deny = serializers.SerializerMethodField()
|
||||
approval_expiration = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
fields = ('*', '-execution_node', '-controller_node', 'can_approve_or_deny', 'approval_expiration')
|
||||
|
||||
def get_approval_expiration(self, obj):
|
||||
if obj.status != 'pending' or obj.timeout == 0:
|
||||
return None
|
||||
return now() + timedelta(seconds=obj.timeout)
|
||||
|
||||
def get_can_approve_or_deny(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
return request.user.can_access(WorkflowApproval, 'approve_or_deny', obj) is True
|
||||
fields = ('*', '-controller_node', '-execution_node', 'can_approve_or_deny', 'approval_expiration', 'timed_out',)
|
||||
|
||||
|
||||
class WorkflowApprovalTemplateSerializer(UnifiedJobTemplateSerializer):
|
||||
|
||||
@@ -4461,7 +4461,7 @@ class WorkflowApprovalApprove(RetrieveAPIView):
|
||||
raise PermissionDenied(detail=_("User does not have permission to approve or deny this workflow."))
|
||||
if obj.status != 'pending':
|
||||
return Response("This workflow step has already been approved or denied.", status=status.HTTP_400_BAD_REQUEST)
|
||||
obj.approve()
|
||||
obj.approve(request)
|
||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
||||
@@ -4476,7 +4476,7 @@ class WorkflowApprovalDeny(RetrieveAPIView):
|
||||
raise PermissionDenied(detail=_("User does not have permission to approve or deny this workflow."))
|
||||
if obj.status != 'pending':
|
||||
return Response("This workflow step has already been approved or denied.", status=status.HTTP_400_BAD_REQUEST)
|
||||
obj.deny()
|
||||
obj.deny(request)
|
||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user