mirror of
https://github.com/pretix/pretix.git
synced 2026-05-07 15:34:02 +00:00
Permissions: Fix staff session handling for organizer exports (#6005)
This commit is contained in:
@@ -257,7 +257,7 @@ def init_organizer_exporters(
|
|||||||
|
|
||||||
if permission_name not in _event_list_cache:
|
if permission_name not in _event_list_cache:
|
||||||
if staff_session:
|
if staff_session:
|
||||||
events = event_qs.all()
|
events = event_qs.all() if event_qs else organizer.events.all()
|
||||||
elif event_qs is not None:
|
elif event_qs is not None:
|
||||||
events = event_qs.filter(
|
events = event_qs.filter(
|
||||||
pk__in=perm_holder.get_events_with_permission(
|
pk__in=perm_holder.get_events_with_permission(
|
||||||
@@ -292,7 +292,7 @@ def init_organizer_exporters(
|
|||||||
elif device:
|
elif device:
|
||||||
_has_permission_on_any_team_cache[permission_name] = device.has_event_permission(permission_name)
|
_has_permission_on_any_team_cache[permission_name] = device.has_event_permission(permission_name)
|
||||||
|
|
||||||
if not _has_permission_on_any_team_cache[permission_name]:
|
if not _has_permission_on_any_team_cache[permission_name] and not staff_session:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
exporter: BaseExporter = response(event=_event_list_cache[permission_name], organizer=organizer, **kwargs)
|
exporter: BaseExporter = response(event=_event_list_cache[permission_name], organizer=organizer, **kwargs)
|
||||||
|
|||||||
@@ -2649,7 +2649,10 @@ class OrderGo(EventPermissionRequiredMixin, View):
|
|||||||
class ExportMixin:
|
class ExportMixin:
|
||||||
@cached_property
|
@cached_property
|
||||||
def exporters(self):
|
def exporters(self):
|
||||||
raw_exporters = list(init_event_exporters(self.request.event, user=self.request.user, request=self.request))
|
raw_exporters = list(init_event_exporters(
|
||||||
|
self.request.event, user=self.request.user, request=self.request,
|
||||||
|
staff_session=self.request.user.has_active_staff_session(self.request.session.session_key),
|
||||||
|
))
|
||||||
return sorted(
|
return sorted(
|
||||||
raw_exporters,
|
raw_exporters,
|
||||||
key=lambda ex: (0 if ex.category else 1, ex.category or "", 0 if ex.featured else 1, str(ex.verbose_name).lower())
|
key=lambda ex: (0 if ex.category else 1, ex.category or "", 0 if ex.featured else 1, str(ex.verbose_name).lower())
|
||||||
|
|||||||
@@ -2025,7 +2025,10 @@ class ExportMixin:
|
|||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def exporters(self):
|
def exporters(self):
|
||||||
raw_exporters = list(init_organizer_exporters(self.request.organizer, user=self.request.user, request=self.request))
|
raw_exporters = list(init_organizer_exporters(
|
||||||
|
self.request.organizer, user=self.request.user, request=self.request,
|
||||||
|
staff_session=self.request.user.has_active_staff_session(self.request.session.session_key),
|
||||||
|
))
|
||||||
return sorted(
|
return sorted(
|
||||||
raw_exporters,
|
raw_exporters,
|
||||||
key=lambda ex: (
|
key=lambda ex: (
|
||||||
|
|||||||
Reference in New Issue
Block a user