forked from CGM_Public/pretix_original
Regenerate OrderPosition.web_secret when chaning other secrets
This commit is contained in:
@@ -647,6 +647,8 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
||||
order = self.get_object()
|
||||
order.secret = generate_secret()
|
||||
for op in order.all_positions.all():
|
||||
op.web_secret = generate_secret()
|
||||
op.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
request.event, op, force_invalidate=True, save=True
|
||||
)
|
||||
|
||||
@@ -2425,6 +2425,8 @@ class OrderChangeManager:
|
||||
elif isinstance(op, self.SplitOperation):
|
||||
split_positions.append(op.position)
|
||||
elif isinstance(op, self.RegenerateSecretOperation):
|
||||
op.web_secret = generate_secret()
|
||||
op.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
event=self.event, position=op.position, force_invalidate=True, save=True
|
||||
)
|
||||
@@ -2531,6 +2533,7 @@ class OrderChangeManager:
|
||||
'new_order': split_order.code,
|
||||
})
|
||||
op.order = split_order
|
||||
op.web_secret = generate_secret()
|
||||
assign_ticket_secret(
|
||||
self.event, position=op, force_invalidate=True,
|
||||
)
|
||||
|
||||
@@ -490,7 +490,9 @@ class OrderPositionChangeForm(forms.Form):
|
||||
)
|
||||
operation_secret = forms.BooleanField(
|
||||
required=False,
|
||||
label=_('Generate a new secret')
|
||||
label=_('Generate a new secret'),
|
||||
help_text=_('This affects both the ticket secret (often used as a QR code) as well as the link used to '
|
||||
'individually access the ticket.')
|
||||
)
|
||||
operation_cancel = forms.BooleanField(
|
||||
required=False,
|
||||
|
||||
@@ -2241,6 +2241,8 @@ class OrderContactChange(OrderView):
|
||||
changed = True
|
||||
self.order.secret = generate_secret()
|
||||
for op in self.order.all_positions.all():
|
||||
op.web_secret = generate_secret()
|
||||
op.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
self.request.event, position=op, force_invalidate=True, save=True
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user