forked from CGM_Public/pretix_original
Allow exporters to have empty permission
This commit is contained in:
committed by
Raphael Michel
parent
c64553ad69
commit
f637e1fcdd
@@ -191,7 +191,7 @@ class BaseExporter:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_required_event_permission(cls) -> str:
|
def get_required_event_permission(cls) -> Optional[str]:
|
||||||
"""
|
"""
|
||||||
The permission level required to use this exporter for events. For multi-event-exports, this will be used
|
The permission level required to use this exporter for events. For multi-event-exports, this will be used
|
||||||
to limit the selection of events. Will be ignored if the ``OrganizerLevelExportMixin`` mixin is used.
|
to limit the selection of events. Will be ignored if the ``OrganizerLevelExportMixin`` mixin is used.
|
||||||
@@ -206,7 +206,7 @@ class OrganizerLevelExportMixin:
|
|||||||
raise TypeError("required_event_permission may not be called on OrganizerLevelExportMixin")
|
raise TypeError("required_event_permission may not be called on OrganizerLevelExportMixin")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_required_organizer_permission(cls) -> str:
|
def get_required_organizer_permission(cls) -> Optional[str]:
|
||||||
"""
|
"""
|
||||||
The permission level required to use this exporter. Must be set for organizer-level exports. Set to `None` to
|
The permission level required to use this exporter. Must be set for organizer-level exports. Set to `None` to
|
||||||
allow everyone with any access to the organizer.
|
allow everyone with any access to the organizer.
|
||||||
|
|||||||
@@ -319,6 +319,9 @@ class TeamQuerySet(models.QuerySet):
|
|||||||
def event_permission_q(cls, perm_name):
|
def event_permission_q(cls, perm_name):
|
||||||
from ..permissions import assert_valid_event_permission
|
from ..permissions import assert_valid_event_permission
|
||||||
|
|
||||||
|
if perm_name is None:
|
||||||
|
return Q()
|
||||||
|
|
||||||
if perm_name.startswith('can_') and perm_name in OLD_TO_NEW_EVENT_COMPAT: # legacy
|
if perm_name.startswith('can_') and perm_name in OLD_TO_NEW_EVENT_COMPAT: # legacy
|
||||||
return reduce(operator.and_, [cls.event_permission_q(p) for p in OLD_TO_NEW_EVENT_COMPAT[perm_name]])
|
return reduce(operator.and_, [cls.event_permission_q(p) for p in OLD_TO_NEW_EVENT_COMPAT[perm_name]])
|
||||||
assert_valid_event_permission(perm_name, allow_legacy=False)
|
assert_valid_event_permission(perm_name, allow_legacy=False)
|
||||||
@@ -331,6 +334,9 @@ class TeamQuerySet(models.QuerySet):
|
|||||||
def organizer_permission_q(cls, perm_name):
|
def organizer_permission_q(cls, perm_name):
|
||||||
from ..permissions import assert_valid_organizer_permission
|
from ..permissions import assert_valid_organizer_permission
|
||||||
|
|
||||||
|
if perm_name is None:
|
||||||
|
return Q()
|
||||||
|
|
||||||
if perm_name.startswith('can_') and perm_name in OLD_TO_NEW_ORGANIZER_COMPAT: # legacy
|
if perm_name.startswith('can_') and perm_name in OLD_TO_NEW_ORGANIZER_COMPAT: # legacy
|
||||||
return reduce(operator.and_, [cls.organizer_permission_q(p) for p in OLD_TO_NEW_ORGANIZER_COMPAT[perm_name]])
|
return reduce(operator.and_, [cls.organizer_permission_q(p) for p in OLD_TO_NEW_ORGANIZER_COMPAT[perm_name]])
|
||||||
assert_valid_organizer_permission(perm_name, allow_legacy=False)
|
assert_valid_organizer_permission(perm_name, allow_legacy=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user