1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Enforce object-level permissions for ObjectConfigContextView

This commit is contained in:
Jeremy Stretch
2020-05-22 11:55:56 -04:00
parent eb9147a575
commit 1bce148be2
3 changed files with 7 additions and 11 deletions
netbox
dcim
extras
virtualization

@ -1127,9 +1127,8 @@ class DeviceConfigView(ObjectView):
})
class DeviceConfigContextView(PermissionRequiredMixin, ObjectConfigContextView):
permission_required = 'dcim.view_device'
object_class = Device
class DeviceConfigContextView(ObjectConfigContextView):
queryset = Device.objects.all()
base_template = 'dcim/device.html'

@ -154,15 +154,14 @@ class ConfigContextBulkDeleteView(BulkDeleteView):
default_return_url = 'extras:configcontext_list'
class ObjectConfigContextView(View):
object_class = None
class ObjectConfigContextView(ObjectView):
base_template = None
def get(self, request, pk):
obj = get_object_or_404(self.object_class, pk=pk)
obj = get_object_or_404(self.queryset, pk=pk)
source_contexts = ConfigContext.objects.get_for_object(obj)
model_name = self.object_class._meta.model_name
model_name = self.queryset.model._meta.model_name
# Determine user's preferred output format
if request.GET.get('format') in ['json', 'yaml']:

@ -1,5 +1,4 @@
from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db import transaction
from django.db.models import Count
from django.shortcuts import get_object_or_404, redirect, render
@ -246,9 +245,8 @@ class VirtualMachineView(ObjectView):
})
class VirtualMachineConfigContextView(PermissionRequiredMixin, ObjectConfigContextView):
permission_required = 'virtualization.view_virtualmachine'
object_class = VirtualMachine
class VirtualMachineConfigContextView(ObjectConfigContextView):
queryset = VirtualMachine.objects.all()
base_template = 'virtualization/virtualmachine.html'