Fix transaction handling in invite form

This commit is contained in:
Raphael Michel
2018-09-30 14:07:14 +02:00
parent 4738aa2771
commit c2b7d9a257

View File

@@ -142,21 +142,22 @@ def invite(request, token):
if request.method == 'POST': if request.method == 'POST':
form = RegistrationForm(data=request.POST) form = RegistrationForm(data=request.POST)
if form.is_valid(): with transaction.atomic():
user = User.objects.create_user( valid = form.is_valid()
form.cleaned_data['email'], form.cleaned_data['password'], if valid:
locale=request.LANGUAGE_CODE, user = User.objects.create_user(
timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE form.cleaned_data['email'], form.cleaned_data['password'],
) locale=request.LANGUAGE_CODE,
user = authenticate(request=request, email=user.email, password=form.cleaned_data['password']) timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE
user.log_action('pretix.control.auth.user.created', user=user) )
auth_login(request, user) user = authenticate(request=request, email=user.email, password=form.cleaned_data['password'])
request.session['pretix_auth_login_time'] = int(time.time()) user.log_action('pretix.control.auth.user.created', user=user)
request.session['pretix_auth_long_session'] = ( auth_login(request, user)
settings.PRETIX_LONG_SESSIONS and form.cleaned_data.get('keep_logged_in', False) request.session['pretix_auth_login_time'] = int(time.time())
) request.session['pretix_auth_long_session'] = (
settings.PRETIX_LONG_SESSIONS and form.cleaned_data.get('keep_logged_in', False)
)
with transaction.atomic():
inv.team.members.add(request.user) inv.team.members.add(request.user)
inv.team.log_action( inv.team.log_action(
'pretix.team.member.joined', data={ 'pretix.team.member.joined', data={