From ff13937453b5305a2610d9be4972006eea085fa4 Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@brandstaetter.tech> Date: Mon, 21 Oct 2024 00:59:41 +0000 Subject: [PATCH] Update ConferenceRequiredMixin Allow staff users to access the conference in the backoffice even if it is not public. --- src/backoffice/views/mixins.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backoffice/views/mixins.py b/src/backoffice/views/mixins.py index 20bd7303b..4fae86fa3 100644 --- a/src/backoffice/views/mixins.py +++ b/src/backoffice/views/mixins.py @@ -31,10 +31,14 @@ class ConferenceRequiredMixin(PermissionRequiredMixin): if conference_id is None: try: self._conference = Conference.objects.filter(is_public=True).first() - if self._conference is not None: - self.request.session['conference'] = self._conference.slug except Conference.DoesNotExist: - return None + try: + if self.request.user.is_staff: + self._conference = Conference.objects.first() + except Conference.DoesNotExist: + pass + if self._conference is not None: + self.request.session['conference'] = self._conference.slug else: try: self._conference = Conference.objects.accessible_by_user(self.request.user).get(slug=conference_id) @@ -74,7 +78,7 @@ class ConferenceRequiredMixin(PermissionRequiredMixin): def dispatch(self, request, *args, **kwargs): if self.require_conference and self.conference is None: - return redirect('conference_selection') + return redirect('backoffice:conference_selection') if not self.has_permission(): raise PermissionDenied('Insufficient privileges.') return super().dispatch(request, *args, **kwargs) -- GitLab