From 0317d50497466315df1d9df8372047c36b4748e1 Mon Sep 17 00:00:00 2001 From: Bach Dániel <bd@ik.bme.hu> Date: Fri, 4 Jul 2014 11:40:23 +0200 Subject: [PATCH] dashboard: fix permission checks in TemplateDetail --- circle/dashboard/forms.py | 3 +++ circle/dashboard/views.py | 6 ------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/circle/dashboard/forms.py b/circle/dashboard/forms.py index d00dfff..588a55b 100644 --- a/circle/dashboard/forms.py +++ b/circle/dashboard/forms.py @@ -25,6 +25,7 @@ from django.contrib.auth.forms import ( ) from django.contrib.auth.models import User, Group from django.core.validators import URLValidator +from django.core.exceptions import PermissionDenied from crispy_forms.helper import FormHelper from crispy_forms.layout import ( @@ -624,6 +625,8 @@ class TemplateForm(forms.ModelForm): networks = InterfaceTemplate.objects.filter( template=self.instance).values_list("vlan", flat=True) for m in data['networks']: + if not m.has_level(self.user, "user"): + raise PermissionDenied() if m.pk not in networks: InterfaceTemplate(vlan=m, managed=m.managed, template=self.instance).save() diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py index 5cc532c..1f819b2 100644 --- a/circle/dashboard/views.py +++ b/circle/dashboard/views.py @@ -1142,12 +1142,6 @@ class TemplateDetail(LoginRequiredMixin, SuccessMessageMixin, UpdateView): template = self.get_object() if not template.has_level(request.user, 'owner'): raise PermissionDenied() - for disk in self.get_object().disks.all(): - if not disk.has_level(request.user, 'user'): - raise PermissionDenied() - for network in self.get_object().interface_set.all(): - if not network.vlan.has_level(request.user, "user"): - raise PermissionDenied() return super(TemplateDetail, self).post(self, request, args, kwargs) def get_form_kwargs(self): -- libgit2 0.26.0