From 089938c3ee63b0000bdd00aa788a27021947ab02 Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Mon, 7 Dec 2020 16:46:19 +0100 Subject: [PATCH] Do not pass organizer settings API calls through the event's validate_settings() --- src/pretix/api/serializers/event.py | 4 ++-- src/pretix/api/serializers/organizer.py | 4 ++-- src/pretix/base/settings.py | 11 ++++++++++- src/pretix/control/forms/event.py | 8 ++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index f8336a529..6d7b6b356 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -17,7 +17,7 @@ from pretix.base.models.items import SubEventItem, SubEventItemVariation from pretix.base.services.seating import ( SeatProtected, generate_seats, validate_plan_change, ) -from pretix.base.settings import DEFAULTS, validate_settings +from pretix.base.settings import DEFAULTS, validate_event_settings from pretix.base.signals import api_event_settings_fields @@ -711,7 +711,7 @@ class EventSettingsSerializer(serializers.Serializer): data = super().validate(data) settings_dict = self.instance.freeze() settings_dict.update(data) - validate_settings(self.event, settings_dict) + validate_event_settings(self.event, settings_dict) return data diff --git a/src/pretix/api/serializers/organizer.py b/src/pretix/api/serializers/organizer.py index d023675bd..b02f62c3c 100644 --- a/src/pretix/api/serializers/organizer.py +++ b/src/pretix/api/serializers/organizer.py @@ -15,7 +15,7 @@ from pretix.base.models import ( ) from pretix.base.models.seating import SeatingPlanLayoutValidator from pretix.base.services.mail import SendMailException, mail -from pretix.base.settings import DEFAULTS, validate_settings +from pretix.base.settings import DEFAULTS, validate_organizer_settings from pretix.helpers.urls import build_absolute_uri @@ -262,5 +262,5 @@ class OrganizerSettingsSerializer(serializers.Serializer): data = super().validate(data) settings_dict = self.instance.freeze() settings_dict.update(data) - validate_settings(self.organizer, settings_dict) + validate_organizer_settings(self.organizer, settings_dict) return data diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 254d692f7..c269a359a 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -2331,7 +2331,7 @@ class SettingsSandbox: self._event.settings.set(self._convert_key(key), value) -def validate_settings(event, settings_dict): +def validate_event_settings(event, settings_dict): from pretix.base.models import Event from pretix.base.signals import validate_event_settings @@ -2365,3 +2365,12 @@ def validate_settings(event, settings_dict): if isinstance(event, Event): validate_event_settings.send(sender=event, settings_dict=settings_dict) + + +def validate_organizer_settings(organizer, settings_dict): + # This is not doing anything for the time being. + # But earlier we called validate_event_settings for the organizer, too - and that didn't do anything for + # organizer-settings either. + # + # N.B.: When actually fleshing out this stub, adding it to the OrganizerUpdateForm should be considered. + pass diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index fa85e51ea..8b03fe1d8 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -25,7 +25,7 @@ from pretix.base.models import Event, Organizer, TaxRule, Team from pretix.base.models.event import EventMetaValue, SubEvent from pretix.base.reldate import RelativeDateField, RelativeDateTimeField from pretix.base.settings import ( - PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS, validate_settings, + PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS, validate_event_settings, ) from pretix.control.forms import ( ExtFileField, MultipleLanguagesWidget, SlugWidget, SplitDateTimeField, @@ -496,7 +496,7 @@ class EventSettingsForm(SettingsForm): data = super().clean() settings_dict = self.event.settings.freeze() settings_dict.update(data) - validate_settings(self.event, data) + validate_event_settings(self.event, data) return data def __init__(self, *args, **kwargs): @@ -585,7 +585,7 @@ class PaymentSettingsForm(SettingsForm): data = super().clean() settings_dict = self.obj.settings.freeze() settings_dict.update(data) - validate_settings(self.obj, data) + validate_event_settings(self.obj, data) return data def __init__(self, *args, **kwargs): @@ -717,7 +717,7 @@ class InvoiceSettingsForm(SettingsForm): data = super().clean() settings_dict = self.obj.settings.freeze() settings_dict.update(data) - validate_settings(self.obj, data) + validate_event_settings(self.obj, data) return data