From cf70febb3c246f33a8e83ec0a78d7cbae285d1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 31 Oct 2014 15:42:03 +0100 Subject: [PATCH] return 404 if checking an object that doesn't exist (#5842) --- hobo/environment/views.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/hobo/environment/views.py b/hobo/environment/views.py index e13361c..00010a8 100644 --- a/hobo/environment/views.py +++ b/hobo/environment/views.py @@ -3,7 +3,8 @@ import string from django.conf import settings from django.core.urlresolvers import reverse_lazy -from django.http import HttpResponse +from django.http import HttpResponse, Http404 +from django.shortcuts import get_object_or_404 from django.views.generic.base import TemplateView from django.views.generic.edit import CreateView, UpdateView, DeleteView @@ -136,12 +137,16 @@ class ServiceDeleteView(DeleteView): return None def operational_check_view(request, service, slug, **kwargs): - if service == 'wcs': - object = Wcs.objects.get(slug=slug) - elif service == 'authentic': - object = Authentic.objects.get(slug=slug) - elif service == 'passerelle': - object = Passerelle.objects.get(slug=slug) + klass = { + 'wcs': Wcs, + 'authentic': Authentic, + 'passerelle': Passerelle + }.get(service) + + if klass is None: + raise Http404 + + object = get_object_or_404(klass, slug=slug) object.check_operational() response = HttpResponse(content_type='application/json') json.dump({'operational': object.is_operational()}, response) -- 2.1.1