def register(request): """ Render and process a basic registration form. """ if not settings.PRETIX_REGISTRATION: raise PermissionDenied('Registration is disabled') ctx = {} if request.user.is_authenticated(): return redirect(request.GET.get("next", 'control:index')) if request.method == 'POST': form = RegistrationForm(data=request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE) user = authenticate(email=user.email, password=form.cleaned_data['password']) user.log_action('pretix.control.auth.user.created', user=user) auth_login(request, user) return redirect('control:index') else: form = RegistrationForm() ctx['form'] = form return render(request, 'pretixcontrol/auth/register.html', ctx)
def register(request): """ Render and process a basic registration form. """ if not settings.PRETIX_REGISTRATION: raise PermissionDenied('Registration is disabled') ctx = {} if request.user.is_authenticated: return redirect(request.GET.get("next", 'control:index')) if request.method == 'POST': form = RegistrationForm(data=request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE ) user = authenticate(request=request, email=user.email, password=form.cleaned_data['password']) user.log_action('pretix.control.auth.user.created', user=user) auth_login(request, user) 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) ) return redirect('control:index') else: form = RegistrationForm() ctx['form'] = form return render(request, 'pretixcontrol/auth/register.html', ctx)
def register(request): """ Render and process a basic registration form. """ ctx = {} if request.user.is_authenticated(): return redirect(request.GET.get("next", 'control:index')) if request.method == 'POST': form = RegistrationForm(data=request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE ) user = authenticate(email=user.email, password=form.cleaned_data['password']) auth_login(request, user) return redirect('control:index') else: form = RegistrationForm() ctx['form'] = form return render(request, 'pretixcontrol/auth/register.html', ctx)
def invite(request, token): """ Registration form in case of an invite """ ctx = {} try: inv = TeamInvite.objects.get(token=token) except TeamInvite.DoesNotExist: messages.error(request, _('You used an invalid link. Please copy the link from your email to the address bar ' 'and make sure it is correct and that the link has not been used before.')) return redirect('control:auth.login') if request.user.is_authenticated: if inv.team.members.filter(pk=request.user.pk).exists(): messages.error(request, _('You cannot accept the invitation for "{}" as you already are part of ' 'this team.').format(inv.team.name)) return redirect('control:index') else: with transaction.atomic(): inv.team.members.add(request.user) inv.team.log_action( 'pretix.team.member.joined', data={ 'email': request.user.email, 'invite_email': inv.email, 'user': request.user.pk } ) inv.delete() messages.success(request, _('You are now part of the team "{}".').format(inv.team.name)) return redirect('control:index') if request.method == 'POST': form = RegistrationForm(data=request.POST) with transaction.atomic(): valid = form.is_valid() if valid: user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE ) user = authenticate(request=request, email=user.email, password=form.cleaned_data['password']) user.log_action('pretix.control.auth.user.created', user=user) auth_login(request, user) 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) ) inv.team.members.add(request.user) inv.team.log_action( 'pretix.team.member.joined', data={ 'email': user.email, 'invite_email': inv.email, 'user': user.pk } ) inv.delete() messages.success(request, _('Welcome to pretix! You are now part of the team "{}".').format(inv.team.name)) return redirect('control:index') else: form = RegistrationForm(initial={'email': inv.email}) ctx['form'] = form return render(request, 'pretixcontrol/auth/invite.html', ctx)
def invite(request, token): """ Registration form in case of an invite """ ctx = {} try: inv = TeamInvite.objects.get(token=token) except TeamInvite.DoesNotExist: messages.error( request, _('You used an invalid link. Please copy the link from your email to the address bar ' 'and make sure it is correct and that the link has not been used before.' )) return redirect('control:auth.login') if request.user.is_authenticated: if inv.team.members.filter(pk=request.user.pk).exists(): messages.error( request, _('You cannot accept the invitation for "{}" as you already are part of ' 'this team.').format(inv.team.name)) return redirect('control:index') else: with transaction.atomic(): inv.team.members.add(request.user) inv.team.log_action('pretix.team.member.joined', data={ 'email': request.user.email, 'invite_email': inv.email, 'user': request.user.pk }) inv.delete() messages.success( request, _('You are now part of the team "{}".').format(inv.team.name)) return redirect('control:index') if request.method == 'POST': form = RegistrationForm(data=request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE) user = authenticate(email=user.email, password=form.cleaned_data['password']) user.log_action('pretix.control.auth.user.created', user=user) auth_login(request, user) 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.log_action('pretix.team.member.joined', data={ 'email': user.email, 'invite_email': inv.email, 'user': user.pk }) inv.delete() messages.success( request, _('Welcome to pretix! You are now part of the team "{}".'). format(inv.team.name)) return redirect('control:index') else: form = RegistrationForm(initial={'email': inv.email}) ctx['form'] = form return render(request, 'pretixcontrol/auth/invite.html', ctx)
def invite(request, token): """ Registration form in case of an invite """ ctx = {} try: perm = EventPermission.objects.get(invite_token=token) desc = perm.event.name except EventPermission.DoesNotExist: try: perm = OrganizerPermission.objects.get(invite_token=token) desc = perm.organizer.name except OrganizerPermission.DoesNotExist: messages.error( request, _('You used an invalid link. Please copy the link from your email to the address bar ' 'and make sure it is correct and that the link has not been used before.' )) return redirect('control:auth.login') if request.user.is_authenticated: try: if isinstance(perm, EventPermission): EventPermission.objects.get(event=perm.event, user=request.user) else: OrganizerPermission.objects.get(organizer=perm.organizer, user=request.user) messages.error( request, _('You cannot accept the invitation for "{}" as you already are part of ' 'this team.').format(desc)) return redirect('control:index') except (EventPermission.DoesNotExist, OrganizerPermission.DoesNotExist): pass perm.invite_token = None perm.invite_email = None perm.user = request.user perm.save() messages.success(request, _('You have now access to "{}".').format(desc)) return redirect('control:index') if request.method == 'POST': form = RegistrationForm(data=request.POST) if form.is_valid(): user = User.objects.create_user( form.cleaned_data['email'], form.cleaned_data['password'], locale=request.LANGUAGE_CODE, timezone=request.timezone if hasattr(request, 'timezone') else settings.TIME_ZONE) user = authenticate(email=user.email, password=form.cleaned_data['password']) user.log_action('pretix.control.auth.user.created', user=user) auth_login(request, user) request.session['pretix_auth_login_time'] = int(time.time()) perm.invite_token = None perm.invite_email = None perm.user = user perm.save() messages.success( request, _('Welcome to pretix! You have now access to "{}".').format( desc)) return redirect('control:index') else: form = RegistrationForm(initial={'email': perm.invite_email}) ctx['form'] = form return render(request, 'pretixcontrol/auth/invite.html', ctx)