forked from CGM_Public/pretix_original
Teams: Allow admin user to delete the last team
This commit is contained in:
@@ -670,7 +670,7 @@ class TeamDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
|
|||||||
def is_allowed(self) -> bool:
|
def is_allowed(self) -> bool:
|
||||||
return self.request.organizer.teams.exclude(pk=self.kwargs.get('team')).filter(
|
return self.request.organizer.teams.exclude(pk=self.kwargs.get('team')).filter(
|
||||||
can_change_teams=True, members__isnull=False
|
can_change_teams=True, members__isnull=False
|
||||||
).exists()
|
).exists() or self.request.user.has_active_staff_session(self.request.session.session_key)
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def delete(self, request, *args, **kwargs):
|
def delete(self, request, *args, **kwargs):
|
||||||
@@ -754,7 +754,7 @@ class TeamMemberView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
|
|||||||
else:
|
else:
|
||||||
other_admin_teams = self.request.organizer.teams.exclude(pk=self.object.pk).filter(
|
other_admin_teams = self.request.organizer.teams.exclude(pk=self.object.pk).filter(
|
||||||
can_change_teams=True, members__isnull=False
|
can_change_teams=True, members__isnull=False
|
||||||
).exists()
|
).exists() or self.request.user.has_active_staff_session(self.request.session.session_key)
|
||||||
if not other_admin_teams and self.object.can_change_teams and self.object.members.count() == 1:
|
if not other_admin_teams and self.object.can_change_teams and self.object.members.count() == 1:
|
||||||
messages.error(self.request, _('You cannot remove the last member from this team as no one would '
|
messages.error(self.request, _('You cannot remove the last member from this team as no one would '
|
||||||
'be left with the permission to change teams.'))
|
'be left with the permission to change teams.'))
|
||||||
|
|||||||
Reference in New Issue
Block a user