From f78af94e35695780d6044b1677c033de825c37c8 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 9 Jan 2026 15:15:20 +0100 Subject: [PATCH] Eliminate old names --- doc/development/api/customview.rst | 14 ++--- doc/development/implementation/logging.rst | 2 +- .../implementation/permissions.rst | 61 +++++++++++++------ src/pretix/base/models/auth.py | 4 +- src/pretix/base/models/devices.py | 4 +- src/pretix/base/models/organizer.py | 4 +- .../pretixcontrol/checkin/index.html | 10 +-- .../pretixcontrol/checkin/lists.html | 8 +-- .../pretixcontrol/checkin/simulator.html | 2 +- .../templates/pretixcontrol/items/quota.html | 2 +- .../templates/pretixcontrol/order/index.html | 22 +++---- .../templates/pretixcontrol/orders/index.html | 8 +-- .../pretixcontrol/organizers/detail.html | 6 +- .../pretixcontrol/subevents/index.html | 10 +-- .../pretixcontrol/vouchers/detail.html | 2 +- .../pretixcontrol/vouchers/index.html | 12 ++-- .../pretixcontrol/waitinglist/index.html | 12 ++-- src/pretix/control/views/checkin.py | 2 +- .../pretixplugins/autocheckin/index.html | 2 +- .../templates/pretixplugins/badges/index.html | 10 +-- .../pretixplugins/ticketoutputpdf/index.html | 10 +-- src/tests/control/test_devices.py | 2 +- src/tests/control/test_events.py | 2 +- src/tests/control/test_export.py | 3 +- src/tests/control/test_giftcards.py | 5 +- src/tests/control/test_permissions.py | 2 +- src/tests/control/test_reusable_media.py | 2 +- src/tests/control/test_webhooks.py | 2 +- src/tests/plugins/paypal/test_settings.py | 2 +- src/tests/plugins/paypal2/test_settings.py | 2 +- src/tests/plugins/stripe/test_settings.py | 2 +- src/tests/presale/test_event.py | 2 +- 32 files changed, 130 insertions(+), 103 deletions(-) diff --git a/doc/development/api/customview.rst b/doc/development/api/customview.rst index 8c18dc9821..b147f73539 100644 --- a/doc/development/api/customview.rst +++ b/doc/development/api/customview.rst @@ -55,12 +55,12 @@ your views: ) class AdminView(EventPermissionRequiredMixin, View): - permission = 'can_view_orders' + permission = 'event.orders:read' ... - @event_permission_required('can_view_orders') + @event_permission_required('event.orders:read') def admin_view(request, organizer, event): ... @@ -78,7 +78,7 @@ event-related views, there is also a signal that allows you to add the view to t @receiver(nav_event, dispatch_uid='friends_tickets_nav') def navbar_info(sender, request, **kwargs): url = resolve(request.path_info) - if not request.user.has_event_permission(request.organizer, request.event, 'can_change_vouchers'): + if not request.user.has_event_permission(request.organizer, request.event, 'event.vouchers:read'): return [] return [{ 'label': _('My plugin view'), @@ -118,7 +118,7 @@ for good integration. If you just want to display a form, you could do it like t class MySettingsView(EventSettingsViewMixin, EventSettingsFormView): model = Event - permission = 'can_change_settings' + permission = 'event.settings.general:write' form_class = MySettingsForm template_name = 'my_plugin/settings.html' @@ -204,13 +204,13 @@ In case of ``orga_router`` and ``event_router``, permission checking is done for in the control panel. However, you need to make sure on your own only to return the correct subset of data! ``request .event`` and ``request.organizer`` are available as usual. -To require a special permission like ``can_view_orders``, you do not need to inherit from a special ViewSet base +To require a special permission like ``event.orders:read``, you do not need to inherit from a special ViewSet base class, you can just set the ``permission`` attribute on your viewset: .. code-block:: python class MyViewSet(ModelViewSet): - permission = 'can_view_orders' + permission = 'event.orders:read' ... If you want to check the permission only for some methods of your viewset, you have to do it yourself. Note here that @@ -220,7 +220,7 @@ following: .. code-block:: python perm_holder = (request.auth if isinstance(request.auth, TeamAPIToken) else request.user) - if perm_holder.has_event_permission(request.event.organizer, request.event, 'can_view_orders'): + if perm_holder.has_event_permission(request.event.organizer, request.event, 'event.orders:read'): ... diff --git a/doc/development/implementation/logging.rst b/doc/development/implementation/logging.rst index 7c378b4561..8b618de7fc 100644 --- a/doc/development/implementation/logging.rst +++ b/doc/development/implementation/logging.rst @@ -196,7 +196,7 @@ A simple implementation could look like this: .. code-block:: python class MyNotificationType(NotificationType): - required_permission = "can_view_orders" + required_permission = "event.orders:read" action_type = "pretix.event.order.paid" verbose_name = _("Order has been paid") diff --git a/doc/development/implementation/permissions.rst b/doc/development/implementation/permissions.rst index ef6a4156dd..8e668acc28 100644 --- a/doc/development/implementation/permissions.rst +++ b/doc/development/implementation/permissions.rst @@ -2,7 +2,7 @@ Permissions =========== pretix uses a fine-grained permission system to control who is allowed to control what parts of the system. -The central concept here is the concept of *Teams*. You can read more on `configuring teams and permissions `_ +The central concept here is the concept of *Teams*. You can read more on `configuring teams and permissions`_ and the :class:`pretix.base.models.Team` model in the respective parts of the documentation. The basic digest is: An organizer account can have any number of teams, and any number of users can be part of a team. A team can be assigned a set of permissions and connected to some or all of the events of the organizer. @@ -25,8 +25,8 @@ permission level to access a view: class MyOrgaView(OrganizerPermissionRequiredMixin, View): - permission = 'can_change_organizer_settings' - # Only users with the permission ``can_change_organizer_settings`` on + permission = 'organizer.settings.general:write' + # Only users with the permission ``organizer.settings.general:write`` on # this organizer can access this @@ -35,9 +35,9 @@ permission level to access a view: # Only users with *any* permission on this organizer can access this - @organizer_permission_required('can_change_organizer_settings') + @organizer_permission_required('organizer.settings.general:write') def my_orga_view(request, organizer, **kwargs): - # Only users with the permission ``can_change_organizer_settings`` on + # Only users with the permission ``organizer.settings.general:write`` on # this organizer can access this @@ -56,8 +56,8 @@ Of course, the same is available on event level: class MyEventView(EventPermissionRequiredMixin, View): - permission = 'can_change_event_settings' - # Only users with the permission ``can_change_event_settings`` on + permission = 'event.settings.general:write' + # Only users with the permission ``event.settings.general:write`` on # this event can access this @@ -66,9 +66,9 @@ Of course, the same is available on event level: # Only users with *any* permission on this event can access this - @event_permission_required('can_change_event_settings') + @event_permission_required('event.settings.general:write') def my_event_view(request, organizer, **kwargs): - # Only users with the permission ``can_change_event_settings`` on + # Only users with the permission ``event.settings.general:write`` on # this event can access this @@ -121,7 +121,7 @@ When creating your own ``viewset`` using Django REST framework, you just need to and pretix will check it automatically for you:: class MyModelViewSet(viewsets.ReadOnlyModelViewSet): - permission = 'can_view_orders' + permission = 'event.orders:read' Checking permission in code --------------------------- @@ -136,12 +136,12 @@ Return all users that are in any team that is connected to this event:: Return all users that are in a team with a specific permission for this event:: - >>> event.get_users_with_permission('can_change_event_settings') + >>> event.get_users_with_permission('event.orders:read') Determine if a user has a certain permission for a specific event:: - >>> user.has_event_permission(organizer, event, 'can_change_event_settings', request=request) + >>> user.has_event_permission(organizer, event, 'event.orders:read', request=request) True Determine if a user has any permission for a specific event:: @@ -153,27 +153,27 @@ In the two previous commands, the ``request`` argument is optional, but required The same method exists for organizer-level permissions:: - >>> user.has_organizer_permission(organizer, 'can_change_event_settings', request=request) + >>> user.has_organizer_permission(organizer, 'event.orders:read', request=request) True Sometimes, it might be more useful to get the set of permissions at once:: >>> user.get_event_permission_set(organizer, event) - {'can_change_event_settings', 'can_view_orders', 'can_change_orders'} + {'event.settings.general:write', 'event.orders:read', 'event.orders:write'} >>> user.get_organizer_permission_set(organizer, event) - {'can_change_organizer_settings', 'can_create_events'} + {'organizer.settings.general:write', 'organizer.events:create'} Within a view on the ``/control`` subpath, the results of these two methods are already available in the ``request.eventpermset`` and ``request.orgapermset`` properties. This makes it convenient to query them in templates:: - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} … {% endif %} You can also do the reverse to get any events a user has access to:: - >>> user.get_events_with_permission('can_change_event_settings', request=request) + >>> user.get_events_with_permission('event.settings.general:write', request=request) >>> user.get_events_with_any_permission(request=request) @@ -195,3 +195,30 @@ staff mode is active. You can check if a user is in staff mode using their sessi Staff mode has a hard time limit and during staff mode, a middleware will log all requests made by that user. Later, the user is able to also save a message to comment on what they did in their administrative session. This feature is intended to help compliance with data protection rules as imposed e.g. by GDPR. + +Adding permissions +------------------ + +Plugins can add permissions through the ``register_event_permissions`` and ``register_organizer_permission``. +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. +We recommend to prefix the permission string with the plugin name and follow the ``.:`` pattern. + +Example:: + + @receiver(register_event_permissions) + def register_default_event_permissions(sender, **kwargs): + return [ + Permission("pretix_myplugin.resource:read", _("Read resources"), + "pretix_myplugin", _("Some helptext")), + ] + + + @receiver(register_organizer_permissions) + def register_default_organizer_permissions(sender, **kwargs): + return [ + Permission("pretix_myplugin.resource:read", _("Read resources"), + "pretix_myplugin", _("Some helptext")), + ] + +.. _configuring teams and permissions: https://docs.pretix.eu/guides/teams/ \ No newline at end of file diff --git a/src/pretix/base/models/auth.py b/src/pretix/base/models/auth.py index 93384e49a8..bce3e31b65 100644 --- a/src/pretix/base/models/auth.py +++ b/src/pretix/base/models/auth.py @@ -501,7 +501,7 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): :param organizer: The organizer of the event :param event: The event to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``event.orders:read`` :param request: The current request (optional) :param session_key: The current session key (optional) :return: bool @@ -524,7 +524,7 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): to the organizer ``organizer``. :param organizer: The organizer to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``organizer.events:create`` :param request: The current request (optional). Required to detect staff sessions properly. :return: bool """ diff --git a/src/pretix/base/models/devices.py b/src/pretix/base/models/devices.py index 52f4a2045a..183945b57c 100644 --- a/src/pretix/base/models/devices.py +++ b/src/pretix/base/models/devices.py @@ -229,7 +229,7 @@ class Device(LoggedModel): :param organizer: The organizer of the event :param event: The event to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``event.orders:read`` :param request: This parameter is ignored and only defined for compatibility reasons. :return: bool """ @@ -246,7 +246,7 @@ class Device(LoggedModel): to the organizer ``organizer``. :param organizer: The organizer to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``organizer.events:create`` :param request: This parameter is ignored and only defined for compatibility reasons. :return: bool """ diff --git a/src/pretix/base/models/organizer.py b/src/pretix/base/models/organizer.py index ae5921fbf8..875cebaaff 100644 --- a/src/pretix/base/models/organizer.py +++ b/src/pretix/base/models/organizer.py @@ -534,7 +534,7 @@ class TeamAPIToken(models.Model): :param organizer: The organizer of the event :param event: The event to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``event.orders:read`` :param request: This parameter is ignored and only defined for compatibility reasons. :return: bool """ @@ -551,7 +551,7 @@ class TeamAPIToken(models.Model): to the organizer ``organizer``. :param organizer: The organizer to check - :param perm_name: The permission, e.g. ``can_change_teams`` + :param perm_name: The permission, e.g. ``organizer:events.create`` :param request: This parameter is ignored and only defined for compatibility reasons. :return: bool """ diff --git a/src/pretix/control/templates/pretixcontrol/checkin/index.html b/src/pretix/control/templates/pretixcontrol/checkin/index.html index 652a8819b0..3de6e73e2f 100644 --- a/src/pretix/control/templates/pretixcontrol/checkin/index.html +++ b/src/pretix/control/templates/pretixcontrol/checkin/index.html @@ -9,7 +9,7 @@ {% block content %}

{% blocktrans with name=checkinlist.name %}Check-in list: {{ name }}{% endblocktrans %} - {% if 'can_change_event_settings' in request.eventpermset %} + {% if 'event.settings.general:write' in request.eventpermset %} @@ -87,7 +87,7 @@ - {% if "can_change_orders" in request.eventpermset or "can_checkin_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset or "event.orders:checkin" in request.eventpermset %} {% endif %} @@ -132,7 +132,7 @@ {% for e in entries %} - {% if "can_change_orders" in request.eventpermset or "can_checkin_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset or "event.orders:checkin" in request.eventpermset %} {% endif %} @@ -207,7 +207,7 @@ {% else %}

- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {% trans "Create a new check-in list" %} {% endif %} @@ -83,7 +83,7 @@ {% trans "Connected devices" %} {% endif %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} @@ -158,7 +158,7 @@ - {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} diff --git a/src/pretix/control/templates/pretixcontrol/checkin/simulator.html b/src/pretix/control/templates/pretixcontrol/checkin/simulator.html index fc7989a275..ff38299696 100644 --- a/src/pretix/control/templates/pretixcontrol/checkin/simulator.html +++ b/src/pretix/control/templates/pretixcontrol/checkin/simulator.html @@ -9,7 +9,7 @@ {% block inside %}

{% blocktrans with name=checkinlist.name %}Check-in list: {{ name }}{% endblocktrans %} - {% if 'can_change_event_settings' in request.eventpermset %} + {% if 'event.settings.general:write' in request.eventpermset %} diff --git a/src/pretix/control/templates/pretixcontrol/items/quota.html b/src/pretix/control/templates/pretixcontrol/items/quota.html index 0af4b7395f..1fbc71c36a 100644 --- a/src/pretix/control/templates/pretixcontrol/items/quota.html +++ b/src/pretix/control/templates/pretixcontrol/items/quota.html @@ -7,7 +7,7 @@ {% block inside %}

{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %} - {% if 'can_change_items' in request.eventpermset %} + {% if 'event.items:write' in request.eventpermset %} diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html index 9ae065d0ad..dd962fa0bc 100644 --- a/src/pretix/control/templates/pretixcontrol/order/index.html +++ b/src/pretix/control/templates/pretixcontrol/order/index.html @@ -26,7 +26,7 @@ {% endif %} {% include "pretixcontrol/orders/fragment_order_status.html" with order=order class="pull-right flip" %}

- {% if 'can_change_orders' in request.eventpermset %} + {% if 'event.orders:write' in request.eventpermset %}
{% csrf_token %} @@ -193,7 +193,7 @@
{% trans "Order locale" %}
{{ display_locale }} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} @@ -220,7 +220,7 @@ {{ order.customer.identifier }} – {{ order.customer.email }} {% endif %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} @@ -233,7 +233,7 @@ {% if order.email and order.email_known_to_work %} {% endif %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} @@ -257,7 +257,7 @@
{% trans "Phone number" %}
{{ order.phone|default_if_none:""|phone_format }} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} @@ -371,7 +371,7 @@
{% endif %} {% endfor %} - {% if can_generate_invoice and 'can_change_orders' in request.eventpermset %} + {% if can_generate_invoice and 'event.orders:write' in request.eventpermset %}
@@ -382,7 +382,7 @@
{% endif %} - {% elif can_generate_invoice and 'can_change_orders' in request.eventpermset %} + {% elif can_generate_invoice and 'event.orders:write' in request.eventpermset %}
{% trans "Invoices" %}
- {% if 'can_change_orders' in request.eventpermset %} + {% if 'event.orders:write' in request.eventpermset %} {% trans "Change answers" %} @@ -893,7 +893,7 @@ {% endfor %} - {% if order.payment_refund_sum > 0 and "can_change_orders" in request.eventpermset %} + {% if order.payment_refund_sum > 0 and "event.orders:write" in request.eventpermset %} {% trans "Create a refund" %} @@ -1012,7 +1012,7 @@
- {% if 'can_change_orders' in request.eventpermset %} + {% if 'event.orders:write' in request.eventpermset %} {% trans "Change" %} @@ -1088,7 +1088,7 @@ {% bootstrap_field comment_form.custom_followup_at %} {% bootstrap_field comment_form.checkin_attention show_help=True show_label=False %} {% bootstrap_field comment_form.checkin_text show_help=True show_label=False %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} diff --git a/src/pretix/control/templates/pretixcontrol/orders/index.html b/src/pretix/control/templates/pretixcontrol/orders/index.html index f1cf150748..78491b14bd 100644 --- a/src/pretix/control/templates/pretixcontrol/orders/index.html +++ b/src/pretix/control/templates/pretixcontrol/orders/index.html @@ -122,7 +122,7 @@ - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} - {% if page_obj.paginator.num_pages > 1 and "can_change_orders" in request.eventpermset %} + {% if page_obj.paginator.num_pages > 1 and "event.orders:write" in request.eventpermset %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} @@ -107,7 +107,7 @@ - {% if "can_change_event_settings" in request.eventpermset and page_obj.paginator.num_pages > 1 %} + {% if "event.subevents:write" in request.eventpermset and page_obj.paginator.num_pages > 1 %} @@ -201,7 +201,7 @@
@@ -154,7 +154,7 @@
- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.subevents:write" in request.eventpermset %} {% endif %}
- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.subevents:write" in request.eventpermset %} {% endif %}
- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.subevents:write" in request.eventpermset %}
- {% if "can_change_vouchers" in request.eventpermset %} + {% if "event.vouchers:write" in request.eventpermset %} - {% if "can_change_vouchers" in request.eventpermset %} + {% if "event.vouchers:write" in request.eventpermset %}
{% endif %}
- {% if 'can_change_orders' in request.eventpermset %} + {% if 'event.orders:write' in request.eventpermset %}
@@ -80,7 +80,7 @@
{% endif %} -
+
{% trans "Sales estimate" %} @@ -151,7 +151,7 @@ - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} {% endif %} @@ -171,7 +171,7 @@ {% trans "Voucher" %} - {% if "can_change_orders" in request.eventpermset and page_obj.paginator.num_pages > 1 %} + {% if "event.orders:write" in request.eventpermset and page_obj.paginator.num_pages > 1 %} @@ -188,7 +188,7 @@ {% for e in entries %} - {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %} {% endif %} @@ -290,7 +290,7 @@
- {% if "can_change_orders" in request.eventpermset %} + {% if "event.orders:write" in request.eventpermset %}
{% else %}

- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {% trans "Create a new badge layout" %} {% endif %} @@ -40,7 +40,7 @@ {% for l in layouts %} - {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {{ l.name }} @@ -54,7 +54,7 @@ {% trans "Default" %} - {% elif "can_change_event_settings" in request.eventpermset %} + {% elif "event.settings.general:write" in request.eventpermset %}

@@ -66,7 +66,7 @@ {% endif %} - {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} diff --git a/src/pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html b/src/pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html index a2db4f765a..5b1141bfce 100644 --- a/src/pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html +++ b/src/pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html @@ -12,7 +12,7 @@ {% endblocktrans %}

- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {% trans "Create a new layout" %} @@ -20,7 +20,7 @@
{% else %}

- {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {% trans "Create a new layout" %} {% endif %} @@ -38,7 +38,7 @@ {% for l in layouts %} - {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} {{ l.name }} @@ -52,7 +52,7 @@ {% trans "Default" %} - {% elif "can_change_event_settings" in request.eventpermset %} + {% elif "event.settings.general:write" in request.eventpermset %} {% csrf_token %} @@ -63,7 +63,7 @@ {% endif %} - {% if "can_change_event_settings" in request.eventpermset %} + {% if "event.settings.general:write" in request.eventpermset %} diff --git a/src/tests/control/test_devices.py b/src/tests/control/test_devices.py index afbca7b3b0..7b09239bb1 100644 --- a/src/tests/control/test_devices.py +++ b/src/tests/control/test_devices.py @@ -55,7 +55,7 @@ def admin_user(admin_team): @pytest.fixture def admin_team(organizer): - return Team.objects.create(organizer=organizer, can_change_organizer_settings=True, name='Admin team') + return Team.objects.create(organizer=organizer, all_organizer_permissions=True, name='Admin team') @pytest.mark.django_db diff --git a/src/tests/control/test_events.py b/src/tests/control/test_events.py index 809b5904f8..373237fb5d 100644 --- a/src/tests/control/test_events.py +++ b/src/tests/control/test_events.py @@ -337,7 +337,7 @@ class EventsTest(SoupTest): self.orga1.refresh_from_db() assert "tests.testdummyhybrid" not in self.orga1.plugins - t2 = Team.objects.create(organizer=self.orga1, can_change_organizer_settings=True) + t2 = Team.objects.create(organizer=self.orga1, all_organizer_permissions=True, all_event_permissions=True) t2.members.add(self.user) self.post_doc('/control/event/%s/%s/settings/plugins' % (self.orga1.slug, self.event1.slug), diff --git a/src/tests/control/test_export.py b/src/tests/control/test_export.py index 12b715cc74..b5b02ff455 100644 --- a/src/tests/control/test_export.py +++ b/src/tests/control/test_export.py @@ -329,7 +329,8 @@ def test_organizer_export_schedule(client, env): @pytest.mark.django_db(transaction=True) def test_organizer_limited_permission(client, env): - env[2].can_change_organizer_settings = False + env[2].all_organizer_permissions = False + env[2].all_event_permissions = False env[2].save() user2 = User.objects.create_user("dummy2@dummy.dummy", "dummy") diff --git a/src/tests/control/test_giftcards.py b/src/tests/control/test_giftcards.py index e4665e5cf1..340ab60a6c 100644 --- a/src/tests/control/test_giftcards.py +++ b/src/tests/control/test_giftcards.py @@ -51,15 +51,14 @@ def gift_card(organizer): @pytest.fixture def admin_user(organizer): u = User.objects.create_user('dummy@dummy.dummy', 'dummy') - admin_team = Team.objects.create(organizer=organizer, can_manage_gift_cards=True, name='Admin team', - can_change_organizer_settings=True) + admin_team = Team.objects.create(organizer=organizer, name='Admin team', all_organizer_permissions=True) admin_team.members.add(u) return u @pytest.fixture def team2(admin_user, organizer2): - admin_team = Team.objects.create(organizer=organizer2, can_manage_gift_cards=True, name='Admin team') + admin_team = Team.objects.create(organizer=organizer2, name='Admin team', all_organizer_permissions=True) admin_team.members.add(admin_user) diff --git a/src/tests/control/test_permissions.py b/src/tests/control/test_permissions.py index 7d2fbd5ac4..94b6fd9e22 100644 --- a/src/tests/control/test_permissions.py +++ b/src/tests/control/test_permissions.py @@ -289,7 +289,7 @@ def test_wrong_event(perf_patch, client, env, url): organizer=env[2], name='Dummy', slug='dummy2', date_from=now(), plugins='pretix.plugins.banktransfer' ) - t = Team.objects.create(pk=2, organizer=env[2], can_change_event_settings=True) + t = Team.objects.create(pk=2, organizer=env[2], all_event_permissions=True) t.members.add(env[1]) t.limit_events.add(event2) diff --git a/src/tests/control/test_reusable_media.py b/src/tests/control/test_reusable_media.py index 2566dd91db..9be545504a 100644 --- a/src/tests/control/test_reusable_media.py +++ b/src/tests/control/test_reusable_media.py @@ -51,7 +51,7 @@ def gift_card(organizer): @pytest.fixture def admin_user(organizer): u = User.objects.create_user('dummy@dummy.dummy', 'dummy') - admin_team = Team.objects.create(organizer=organizer, can_manage_reusable_media=True, name='Admin team') + admin_team = Team.objects.create(organizer=organizer, all_organizer_permissions=True, name='Admin team') admin_team.members.add(u) return u diff --git a/src/tests/control/test_webhooks.py b/src/tests/control/test_webhooks.py index 97f1e773b4..3f8ef1b683 100644 --- a/src/tests/control/test_webhooks.py +++ b/src/tests/control/test_webhooks.py @@ -63,7 +63,7 @@ def admin_user(admin_team): @pytest.fixture def admin_team(organizer): - return Team.objects.create(organizer=organizer, can_change_organizer_settings=True, name='Admin team') + return Team.objects.create(organizer=organizer, all_organizer_permissions=True, name='Admin team') @pytest.mark.django_db diff --git a/src/tests/plugins/paypal/test_settings.py b/src/tests/plugins/paypal/test_settings.py index eb78411ddf..e6b969c546 100644 --- a/src/tests/plugins/paypal/test_settings.py +++ b/src/tests/plugins/paypal/test_settings.py @@ -51,7 +51,7 @@ def env(client): event.settings.set('attendee_names_asked', False) event.settings.set('payment_paypal__enabled', True) user = User.objects.create_user('dummy@dummy.dummy', 'dummy') - t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True) + t = Team.objects.create(organizer=event.organizer, all_event_permissions=True) t.members.add(user) t.limit_events.add(event) client.force_login(user) diff --git a/src/tests/plugins/paypal2/test_settings.py b/src/tests/plugins/paypal2/test_settings.py index 24a2a74efb..d74950d7ce 100644 --- a/src/tests/plugins/paypal2/test_settings.py +++ b/src/tests/plugins/paypal2/test_settings.py @@ -51,7 +51,7 @@ def env(client): event.settings.set('attendee_names_asked', False) event.settings.set('payment_paypal__enabled', True) user = User.objects.create_user('dummy@dummy.dummy', 'dummy') - t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True) + t = Team.objects.create(organizer=event.organizer, all_event_permissions=True) t.members.add(user) t.limit_events.add(event) client.force_login(user) diff --git a/src/tests/plugins/stripe/test_settings.py b/src/tests/plugins/stripe/test_settings.py index 12ecbf4b27..ce634241c3 100644 --- a/src/tests/plugins/stripe/test_settings.py +++ b/src/tests/plugins/stripe/test_settings.py @@ -74,7 +74,7 @@ def env(client): event.settings.set('attendee_names_asked', False) event.settings.set('payment_stripe__enabled', True) user = User.objects.create_user('dummy@dummy.dummy', 'dummy') - t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True) + t = Team.objects.create(organizer=event.organizer, all_event_permissions=True) t.members.add(user) t.limit_events.add(event) client.force_login(user) diff --git a/src/tests/presale/test_event.py b/src/tests/presale/test_event.py index 2f389bebe1..58505426e7 100644 --- a/src/tests/presale/test_event.py +++ b/src/tests/presale/test_event.py @@ -70,7 +70,7 @@ class EventTestMixin: live=True, ) self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy') - t = Team.objects.create(organizer=self.orga, can_change_event_settings=True) + t = Team.objects.create(organizer=self.orga, all_event_permissions=True) t.members.add(self.user) t.limit_events.add(self.event)