Просмотр исходного кода

Enforce object creation permissions

Jeremy Stretch 6 лет назад
Родитель
Сommit
6892b79366
3 измененных файлов с 12 добавлено и 4 удалено
  1. 1 0
      netbox/dcim/tests/test_views.py
  2. 11 1
      netbox/dcim/views.py
  3. 0 3
      netbox/utilities/views.py

+ 1 - 0
netbox/dcim/tests/test_views.py

@@ -305,6 +305,7 @@ device-bays:
             'format': 'yaml'
         }
         response = self.client.post(reverse('dcim:devicetype_import'), data=form_data, follow=True)
+        self.assertEqual(response.status_code, 200)
 
         dt = DeviceType.objects.get(model='TEST-1000')
 

+ 11 - 1
netbox/dcim/views.py

@@ -657,7 +657,17 @@ class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
 
 
 class DeviceTypeImportView(PermissionRequiredMixin, ObjectImportView):
-    permission_required = 'dcim.add_devicetype'
+    permission_required = [
+        'dcim.add_devicetype',
+        'dcim.add_consoleporttemplate',
+        'dcim.add_consoleserverporttemplate',
+        'dcim.add_powerporttemplate',
+        'dcim.add_poweroutlettemplate',
+        'dcim.add_interfacetemplate',
+        'dcim.add_frontporttemplate',
+        'dcim.add_rearporttemplate',
+        'dcim.add_devicebaytemplate',
+    ]
     model = DeviceType
     model_form = forms.DeviceTypeImportForm
     related_object_forms = OrderedDict((

+ 0 - 3
netbox/utilities/views.py

@@ -406,9 +406,6 @@ class ObjectImportView(GetReturnURLMixin, View):
     related_object_forms = dict()
     template_name = 'utilities/obj_import.html'
 
-    def create_object(self, data):
-        raise NotImplementedError("View must implement object creation logic")
-
     def get(self, request):
 
         form = ImportForm()