Explorar o código

Uodate script and report views to use ObjectPermissionRequiredMixin

Jeremy Stretch %!s(int64=5) %!d(string=hai) anos
pai
achega
19407ba3bc
Modificáronse 1 ficheiros con 21 adicións e 12 borrados
  1. 21 12
      netbox/extras/views.py

+ 21 - 12
netbox/extras/views.py

@@ -1,7 +1,6 @@
 from django import template
 from django import template
 from django.conf import settings
 from django.conf import settings
 from django.contrib import messages
 from django.contrib import messages
-from django.contrib.auth.mixins import PermissionRequiredMixin
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes.models import ContentType
 from django.db.models import Count, Q
 from django.db.models import Count, Q
 from django.http import Http404, HttpResponseForbidden
 from django.http import Http404, HttpResponseForbidden
@@ -13,7 +12,10 @@ from django_tables2 import RequestConfig
 from utilities.forms import ConfirmationForm
 from utilities.forms import ConfirmationForm
 from utilities.paginator import EnhancedPaginator
 from utilities.paginator import EnhancedPaginator
 from utilities.utils import shallow_compare_dict
 from utilities.utils import shallow_compare_dict
-from utilities.views import BulkDeleteView, BulkEditView, ObjectView, ObjectDeleteView, ObjectEditView, ObjectListView
+from utilities.views import (
+    BulkDeleteView, BulkEditView, ObjectView, ObjectDeleteView, ObjectEditView, ObjectListView,
+    ObjectPermissionRequiredMixin,
+)
 from . import filters, forms
 from . import filters, forms
 from .models import ConfigContext, ImageAttachment, ObjectChange, ReportResult, Tag, TaggedItem
 from .models import ConfigContext, ImageAttachment, ObjectChange, ReportResult, Tag, TaggedItem
 from .reports import get_report, get_reports
 from .reports import get_report, get_reports
@@ -324,11 +326,12 @@ class ImageAttachmentDeleteView(ObjectDeleteView):
 # Reports
 # Reports
 #
 #
 
 
-class ReportListView(PermissionRequiredMixin, View):
+class ReportListView(ObjectPermissionRequiredMixin, View):
     """
     """
     Retrieve all of the available reports from disk and the recorded ReportResult (if any) for each.
     Retrieve all of the available reports from disk and the recorded ReportResult (if any) for each.
     """
     """
-    permission_required = 'extras.view_reportresult'
+    def get_required_permission(self):
+        return 'extras.view_reportresult'
 
 
     def get(self, request):
     def get(self, request):
 
 
@@ -348,11 +351,12 @@ class ReportListView(PermissionRequiredMixin, View):
         })
         })
 
 
 
 
-class ReportView(PermissionRequiredMixin, View):
+class ReportView(ObjectPermissionRequiredMixin, View):
     """
     """
     Display a single Report and its associated ReportResult (if any).
     Display a single Report and its associated ReportResult (if any).
     """
     """
-    permission_required = 'extras.view_reportresult'
+    def get_required_permission(self):
+        return 'extras.view_reportresult'
 
 
     def get(self, request, name):
     def get(self, request, name):
 
 
@@ -371,11 +375,12 @@ class ReportView(PermissionRequiredMixin, View):
         })
         })
 
 
 
 
-class ReportRunView(PermissionRequiredMixin, View):
+class ReportRunView(ObjectPermissionRequiredMixin, View):
     """
     """
     Run a Report and record a new ReportResult.
     Run a Report and record a new ReportResult.
     """
     """
-    permission_required = 'extras.add_reportresult'
+    def get_required_permission(self):
+        return 'extras.add_reportresult'
 
 
     def post(self, request, name):
     def post(self, request, name):
 
 
@@ -401,8 +406,10 @@ class ReportRunView(PermissionRequiredMixin, View):
 # Scripts
 # Scripts
 #
 #
 
 
-class ScriptListView(PermissionRequiredMixin, View):
-    permission_required = 'extras.view_script'
+class ScriptListView(ObjectPermissionRequiredMixin, View):
+
+    def get_required_permission(self):
+        return 'extras.view_script'
 
 
     def get(self, request):
     def get(self, request):
 
 
@@ -411,8 +418,10 @@ class ScriptListView(PermissionRequiredMixin, View):
         })
         })
 
 
 
 
-class ScriptView(PermissionRequiredMixin, View):
-    permission_required = 'extras.view_script'
+class ScriptView(ObjectPermissionRequiredMixin, View):
+
+    def get_required_permission(self):
+        return 'extras.view_script'
 
 
     def _get_script(self, module, name):
     def _get_script(self, module, name):
         scripts = get_scripts()
         scripts = get_scripts()