mirror of
https://github.com/ansible/awx.git
synced 2026-03-27 05:45:02 -02:30
Fix problem with the tests by dynamically setting the view model
instead of using a model @property or lookup method.
This commit is contained in:
@@ -11,29 +11,15 @@ from rest_framework.response import Response
|
||||
from awx.api import serializers
|
||||
from awx.api.generics import APIView, GenericAPIView
|
||||
from awx.api.permissions import WebhookKeyPermission
|
||||
from awx.main.models import JobTemplate, WorkflowJobTemplate
|
||||
|
||||
# NOTE: The model class attribute for these views must be added
|
||||
# dynamically when including urls/webhooks.py
|
||||
|
||||
|
||||
class WebhookKeyView(GenericAPIView):
|
||||
serializer_class = serializers.EmptySerializer
|
||||
permission_classes = (WebhookKeyPermission,)
|
||||
|
||||
@property
|
||||
def model(self):
|
||||
qs_models = {
|
||||
'job_templates': JobTemplate,
|
||||
'workflow_job_templates': WorkflowJobTemplate,
|
||||
}
|
||||
model = qs_models.get(self.kwargs['model_kwarg'])
|
||||
return model
|
||||
|
||||
def get_queryset(self):
|
||||
model = self.model
|
||||
if model:
|
||||
return self.request.user.get_queryset(model)
|
||||
# Provide a fallback do-nothing queryset so that get_object() has something to work with.
|
||||
return JobTemplate.objects.none()
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
|
||||
@@ -55,15 +41,7 @@ class WebhookReceiverBase(APIView):
|
||||
return super().dispatch(*args, **kwargs)
|
||||
|
||||
def get_queryset(self):
|
||||
qs_models = {
|
||||
'job_templates': JobTemplate,
|
||||
'workflow_job_templates': WorkflowJobTemplate,
|
||||
}
|
||||
model = qs_models.get(self.kwargs['model_kwarg'])
|
||||
if model is None:
|
||||
raise PermissionDenied
|
||||
|
||||
return model.objects.filter(webhook_service=self.service)
|
||||
return self.model.objects.filter(webhook_service=self.service)
|
||||
|
||||
def get_object(self):
|
||||
queryset = self.get_queryset()
|
||||
|
||||
Reference in New Issue
Block a user