Uodate script and report views to use ObjectPermissionRequiredMixin

This commit is contained in:
Jeremy Stretch 2020-06-02 15:40:39 -04:00
parent 3502398d1d
commit 19407ba3bc

View File

@ -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): class ScriptListView(ObjectPermissionRequiredMixin, View):
permission_required = 'extras.view_script'
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): class ScriptView(ObjectPermissionRequiredMixin, View):
permission_required = 'extras.view_script'
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()