Apply suggestions from code review

Co-authored-by: luelista <weller@rami.io>
This commit is contained in:
Raphael Michel
2026-02-22 17:11:05 +01:00
committed by GitHub
parent 83efc4b760
commit cbf4b0f8fe
5 changed files with 20 additions and 16 deletions

View File

@@ -94,9 +94,9 @@ The exporter class
.. automethod:: get_required_event_permission
On organizer level, by default exporters are expected to handle on a *set of events* and the system will automatically
On organizer level, by default exporters are expected to handle a *set of events* and the system will automatically
add a form field that allows the selection of events, limited to events the user has correct permissions for. If this
does not fit your organizer, because it is not related to events, you should **also** inherit from the following class:
does not fit your exporter, because it is not related to events, you should **also** inherit from the following class:
.. class:: pretix.base.exporter.OrganizerLevelExportMixin

View File

@@ -201,13 +201,13 @@ Adding permissions
Plugins can add permissions through the ``register_event_permission_groups`` and ``register_organizer_permission_groups``.
We recommend to use this only for very significant permissions, as the system will become less usable with too many
permission levels, also because the team page will show all permission options, even those of disabled plugins.
permission levels, especially since the team page will show all permission options, even those of disabled plugins.
To register your permissions, you need to register a **permission group** (often representing an area of functionality
or a key model). Below that group, there are **actions**, which represent the actual permissions. Permissions will be
generated as ``<group_name>:<action>``. Then, you need to define **options** which are the valid combinations of the
actions that should be possible to select for a team. This two-step mechanism exists to provide a better user experience
and avoid useless combinations like "write but not read".
and avoid impossible combinations like "write but not read".
Example::

View File

@@ -142,7 +142,7 @@ def assert_valid_event_permission(permission, allow_legacy=True, allow_tuple=Tru
raise ValueError(f"Not allowed to use legacy permission '{permission}'")
all_permissions = get_all_event_permissions()
if permission not in all_permissions:
# Warning *and* exception because warning is silently caught when used in if statements in Django templates
# Warning *and* exception because exception is silently caught when used in if statements in Django templates
warnings.warn(f"Use of undefined permission '{permission}'")
raise Exception(f"Undefined permission '{permission}'")

View File

@@ -205,7 +205,7 @@ def init_event_exporters(event, user=None, token=None, device=None, request=None
continue
if issubclass(response, OrganizerLevelExportMixin):
raise TypeError("Cannot user organizer-level exporter on event level")
raise TypeError("Cannot use organizer-level exporter on event level")
permission_name = response.get_required_event_permission()
if not perm_holder.has_event_permission(event.organizer, event, permission_name, request) and not staff_session:

View File

@@ -24,11 +24,13 @@
<fieldset>
<legend>{% trans "Organizer permissions" %}</legend>
{% bootstrap_field form.all_organizer_permissions layout="control" %}
<div class="team-permission-groups col-md-9 col-md-offset-3" data-display-dependency="#id_all_organizer_permissions" data-inverse>
{% for f in form.organizer_field_names %}
{% bootstrap_field form|getitem:f layout="control" %}
{% endfor %}
</div>
<div class="form-group"><div class="col-md-9 col-md-offset-3">
<div class="team-permission-groups" data-display-dependency="#id_all_organizer_permissions" data-inverse>
{% for f in form.organizer_field_names %}
{% bootstrap_field form|getitem:f layout="control" %}
{% endfor %}
</div>
</div></div>
</fieldset>
<fieldset>
<legend>{% trans "Event permissions" %}</legend>
@@ -36,11 +38,13 @@
{% bootstrap_field form.all_events layout="control" %}
{% bootstrap_field form.limit_events layout="control" %}
{% bootstrap_field form.all_event_permissions layout="control" %}
<div class="team-permission-groups col-md-9 col-md-offset-3" data-display-dependency="#id_all_event_permissions" data-inverse>
{% for f in form.event_field_names %}
{% bootstrap_field form|getitem:f layout="control" %}
{% endfor %}
</div>
<div class="form-group"><div class="col-md-9 col-md-offset-3">
<div class="team-permission-groups" data-display-dependency="#id_all_event_permissions" data-inverse>
{% for f in form.event_field_names %}
{% bootstrap_field form|getitem:f layout="control" %}
{% endfor %}
</div>
</div></div>
</fieldset>
<div class="form-group submit-group">
<button type="submit" class="btn btn-primary btn-save">