Event setup: do not create new team when staff session active (#2132)

With b260cca412, team provisioning has
been disabled for users that are staff. However, this leads to strange
UX, as a new event created by a staff member, not currently in a staff
session resulted in a 404 directly after creation.

The PR updates this requirement to not need to select a team, only when
a staff session is active.
This commit is contained in:
Maico Timmerman
2021-06-22 09:26:09 +02:00
committed by GitHub
parent b7f5631ad0
commit 8b9b86a68d
2 changed files with 6 additions and 5 deletions

View File

@@ -178,7 +178,7 @@ class EventWizardBasicsForm(I18nModelForm):
self.locales = kwargs.get('locales')
self.has_subevents = kwargs.pop('has_subevents')
self.user = kwargs.pop('user')
kwargs.pop('session')
self.session = kwargs.pop('session')
super().__init__(*args, **kwargs)
if 'timezone' not in self.initial:
self.initial['timezone'] = get_current_timezone_name()
@@ -193,7 +193,7 @@ class EventWizardBasicsForm(I18nModelForm):
del self.fields['presale_end']
del self.fields['date_to']
if self.has_control_rights(self.user, self.organizer):
if self.has_control_rights(self.user, self.organizer, self.session):
del self.fields['team']
else:
self.fields['team'].queryset = self.user.teams.filter(organizer=self.organizer)
@@ -235,11 +235,11 @@ class EventWizardBasicsForm(I18nModelForm):
return slug
@staticmethod
def has_control_rights(user, organizer):
def has_control_rights(user, organizer, session):
return user.teams.filter(
organizer=organizer, all_events=True, can_change_event_settings=True, can_change_items=True,
can_change_orders=True, can_change_vouchers=True
).exists() or user.is_staff
).exists() or user.has_active_staff_session(session.session_key)
class EventChoiceMixin: