def contact(request): captcha = None show_captcha = settings.REGISTRATION_CAPTCHA and not request.user.is_authenticated if request.method == "POST": form = ContactForm(request.POST) if show_captcha: captcha = CaptchaForm(request, form, request.POST) if not check_rate_limit("message", request): messages.error( request, _("Too many messages sent, please try again later.") ) elif (captcha is None or captcha.is_valid()) and form.is_valid(): mail_admins_contact( request, "%(subject)s", CONTACT_TEMPLATE, form.cleaned_data, form.cleaned_data["email"], settings.ADMINS_CONTACT, ) return redirect("home") else: initial = get_initial_contact(request) if request.GET.get("t") in CONTACT_SUBJECTS: initial["subject"] = CONTACT_SUBJECTS[request.GET["t"]] form = ContactForm(initial=initial) if show_captcha: captcha = CaptchaForm(request) return render( request, "accounts/contact.html", {"form": form, "captcha_form": captcha, "title": _("Contact")}, )
def email_login(request): """Connect email.""" captcha = None if request.method == 'POST': form = EmailForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): email_user = form.cleaned_data['email_user'] if email_user and email_user != request.user: notify_account_activity( form.cleaned_data['email_user'], request, 'connect' ) return fake_email_sent(request) store_userid(request) return social_complete(request, 'email') else: form = EmailForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/email.html', { 'title': _('Register email'), 'form': form, 'captcha_form': captcha, } )
def email_login(request): """Connect email.""" captcha_form = None if request.method == 'POST': form = EmailForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request, request.POST) if ((captcha_form is None or captcha_form.is_valid()) and form.is_valid()): if form.cleaned_data['email_user']: notify_account_activity( form.cleaned_data['email_user'], request, 'connect' ) request.session['registration-email-sent'] = True return redirect('email-sent') store_userid(request) return complete(request, 'email') else: form = EmailForm() if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request) return render( request, 'accounts/email.html', { 'title': _('Register email'), 'form': form, 'captcha_form': captcha_form, } )
def email_login(request): """Connect email.""" captcha = None if request.method == 'POST': form = EmailForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): if form.cleaned_data['email_user']: notify_account_activity( form.cleaned_data['email_user'], request, 'connect' ) request.session['registration-email-sent'] = True return redirect('email-sent') store_userid(request) return complete(request, 'email') else: form = EmailForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/email.html', { 'title': _('Register email'), 'form': form, 'captcha_form': captcha, } )
def contact(request): captcha = None show_captcha = (settings.REGISTRATION_CAPTCHA and not request.user.is_authenticated) if request.method == 'POST': form = ContactForm(request.POST) if show_captcha: captcha = CaptchaForm(request, form, request.POST) if not check_rate_limit('message', request): messages.error( request, _('Too many messages sent, please try again later!')) elif (captcha is None or captcha.is_valid()) and form.is_valid(): mail_admins_contact( request, '%(subject)s', CONTACT_TEMPLATE, form.cleaned_data, form.cleaned_data['email'], settings.ADMINS_CONTACT, ) return redirect('home') else: initial = get_initial_contact(request) if request.GET.get('t') in CONTACT_SUBJECTS: initial['subject'] = CONTACT_SUBJECTS[request.GET['t']] form = ContactForm(initial=initial) if show_captcha: captcha = CaptchaForm(request) return render(request, 'accounts/contact.html', { 'form': form, 'captcha_form': captcha, 'title': _('Contact'), })
def register(request): """Registration form.""" captcha = None if request.method == 'POST': form = RegistrationForm(request, request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if ((captcha is None or captcha.is_valid()) and form.is_valid() and settings.REGISTRATION_OPEN): if form.cleaned_data['email_user']: notify_account_activity(form.cleaned_data['email_user'], request, 'connect') return fake_email_sent(request) store_userid(request) return social_complete(request, 'email') else: form = RegistrationForm(request) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) backends = set(load_backends(social_django.utils.BACKENDS).keys()) # Redirect if there is only one backend if len(backends) == 1 and 'email' not in backends: return redirect_single(request, backends.pop()) return render( request, 'accounts/register.html', { 'registration_email': 'email' in backends, 'registration_backends': backends - set(['email']), 'title': _('User registration'), 'form': form, 'captcha_form': captcha, })
def register(request): """Registration form.""" captcha_form = None if request.method == 'POST': form = RegistrationForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request, request.POST) if ((captcha_form is None or captcha_form.is_valid()) and form.is_valid() and settings.REGISTRATION_OPEN): if form.cleaned_data['email_user']: notify_account_activity(form.cleaned_data['email_user'], request, 'connect') request.session['registration-email-sent'] = True return redirect('email-sent') return complete(request, 'email') else: form = RegistrationForm() if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request) backends = set(load_backends(BACKENDS).keys()) # Redirect if there is only one backend if len(backends) == 1 and 'email' not in backends: return redirect('social:begin', backends.pop()) return render( request, 'accounts/register.html', { 'registration_email': 'email' in backends, 'registration_backends': backends - set(['email']), 'title': _('User registration'), 'form': form, 'captcha_form': captcha_form, })
def email_login(request): """Connect e-mail.""" captcha = None if request.method == "POST": form = EmailForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): email_user = form.cleaned_data["email_user"] if email_user and email_user != request.user: AuditLog.objects.create(form.cleaned_data["email_user"], request, "connect") return fake_email_sent(request) store_userid(request) return social_complete(request, "email") else: form = EmailForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, "accounts/email.html", { "title": _("Register e-mail"), "form": form, "captcha_form": captcha }, )
def email_login(request): """Connect e-mail.""" captcha = None if request.method == 'POST': form = EmailForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): email_user = form.cleaned_data['email_user'] if email_user and email_user != request.user: AuditLog.objects.create(form.cleaned_data['email_user'], request, 'connect') return fake_email_sent(request) store_userid(request) return social_complete(request, 'email') else: form = EmailForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/email.html', { 'title': _('Register e-mail'), 'form': form, 'captcha_form': captcha }, )
def reset_password(request): """Password reset handling.""" if request.user.is_authenticated: return redirect_profile() if "email" not in get_auth_keys(): messages.error( request, _("Cannot reset password, e-mail authentication is turned off.")) return redirect("login") captcha = None # We're already in the reset phase if "perform_reset" in request.session: return reset_password_set(request) if request.method == "POST": form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): if form.cleaned_data["email_user"]: audit = AuditLog.objects.create( form.cleaned_data["email_user"], request, "reset-request") if not audit.check_rate_limit(request): store_userid(request, True) return social_complete(request, "email") else: email = form.cleaned_data["email"] send_notification_email( None, [email], "reset-nonexisting", context={ "address": get_ip_address(request), "user_agent:": get_user_agent(request), "registration_hint": get_registration_hint(email), }, ) return fake_email_sent(request, True) else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, "accounts/reset.html", { "title": _("Password reset"), "form": form, "captcha_form": captcha, "second_stage": False, }, )
def reset_password(request): """Password reset handling.""" if request.user.is_authenticated: redirect_profile() if 'email' not in load_backends(BACKENDS).keys(): messages.error( request, _('Can not reset password, email authentication is disabled!') ) return redirect('login') captcha = None # We're already in the reset phase if 'perform_reset' in request.session: return reset_password_set(request) elif request.method == 'POST': form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): if form.cleaned_data['email_user']: rate_limited = notify_account_activity( form.cleaned_data['email_user'], request, 'reset-request' ) if not rate_limited: request.session['password_reset'] = True store_userid(request) return complete(request, 'email') request.session['registration-email-sent'] = True return redirect('email-sent') else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/reset.html', { 'title': _('Password reset'), 'form': form, 'captcha_form': captcha, 'second_stage': False, } )
def reset_password(request): """Password reset handling.""" if request.user.is_authenticated: redirect_profile() if 'email' not in load_backends(social_django.utils.BACKENDS).keys(): messages.error( request, _('Can not reset password, email authentication is disabled!') ) return redirect('login') captcha = None # We're already in the reset phase if 'perform_reset' in request.session: return reset_password_set(request) if request.method == 'POST': form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): if form.cleaned_data['email_user']: audit = AuditLog.objects.create( form.cleaned_data['email_user'], request, 'reset-request' ) if not audit.check_rate_limit(request): store_userid(request, True) return social_complete(request, 'email') return fake_email_sent(request, True) else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/reset.html', { 'title': _('Password reset'), 'form': form, 'captcha_form': captcha, 'second_stage': False, } )
def reset_password(request): """Password reset handling.""" if request.user.is_authenticated: redirect_profile() if 'email' not in load_backends(social_django.utils.BACKENDS).keys(): messages.error( request, _('Can not reset password, email authentication is disabled!') ) return redirect('login') captcha = None # We're already in the reset phase if 'perform_reset' in request.session: return reset_password_set(request) if request.method == 'POST': form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if (captcha is None or captcha.is_valid()) and form.is_valid(): if form.cleaned_data['email_user']: rate_limited = notify_account_activity( form.cleaned_data['email_user'], request, 'reset-request' ) if not rate_limited: store_userid(request, True) return social_complete(request, 'email') return fake_email_sent(request, True) else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) return render( request, 'accounts/reset.html', { 'title': _('Password reset'), 'form': form, 'captcha_form': captcha, 'second_stage': False, } )
def register(request): """Registration form.""" captcha = None if request.method == "POST": form = RegistrationForm(request, request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if ( (captcha is None or captcha.is_valid()) and form.is_valid() and settings.REGISTRATION_OPEN ): if form.cleaned_data["email_user"]: AuditLog.objects.create( form.cleaned_data["email_user"], request, "connect" ) return fake_email_sent(request) store_userid(request) return social_complete(request, "email") else: form = RegistrationForm(request) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) backends = get_auth_keys() if settings.REGISTRATION_ALLOW_BACKENDS: backends = backends & set(settings.REGISTRATION_ALLOW_BACKENDS) elif not settings.REGISTRATION_OPEN: backends = set() # Redirect if there is only one backend if len(backends) == 1 and "email" not in backends: return redirect_single(request, backends.pop()) return render( request, "accounts/register.html", { "registration_email": "email" in backends, "registration_backends": backends - {"email"}, "title": _("User registration"), "form": form, "captcha_form": captcha, }, )
def reset_password(request): """Password reset handling.""" if 'email' not in load_backends(BACKENDS).keys(): messages.error( request, _('Can not reset password, email authentication is disabled!') ) return redirect('login') captcha_form = None if request.method == 'POST': form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request, request.POST) if ((captcha_form is None or captcha_form.is_valid()) and form.is_valid()): # Force creating new session request.session.create() if request.user.is_authenticated: logout(request) if form.cleaned_data['email_user']: request.session['password_reset'] = True store_userid(request) return complete(request, 'email') else: request.session['registration-email-sent'] = True return redirect('email-sent') else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request) return render( request, 'accounts/reset.html', { 'title': _('Password reset'), 'form': form, 'captcha_form': captcha_form, } )
def contact(request): captcha = None show_captcha = ( settings.REGISTRATION_CAPTCHA and not request.user.is_authenticated ) if request.method == 'POST': form = ContactForm(request.POST) if show_captcha: captcha = CaptchaForm(request, form, request.POST) if not check_rate_limit('message', request): messages.error( request, _('Too many messages sent, please try again later!') ) elif (captcha is None or captcha.is_valid()) and form.is_valid(): mail_admins_contact( request, '%(subject)s', CONTACT_TEMPLATE, form.cleaned_data, form.cleaned_data['email'], settings.ADMINS_CONTACT, ) return redirect('home') else: initial = get_initial_contact(request) if request.GET.get('t') in CONTACT_SUBJECTS: initial['subject'] = CONTACT_SUBJECTS[request.GET['t']] form = ContactForm(initial=initial) if show_captcha: captcha = CaptchaForm(request) return render( request, 'accounts/contact.html', { 'form': form, 'captcha_form': captcha, 'title': _('Contact'), } )
def register(request): """Registration form.""" captcha_form = None if request.method == 'POST': form = RegistrationForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request, request.POST) if ((captcha_form is None or captcha_form.is_valid()) and form.is_valid() and settings.REGISTRATION_OPEN): if form.cleaned_data['email_user']: notify_account_activity( form.cleaned_data['email_user'], request, 'connect' ) request.session['registration-email-sent'] = True return redirect('email-sent') store_userid(request) return complete(request, 'email') else: form = RegistrationForm() if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request) backends = set(load_backends(BACKENDS).keys()) # Redirect if there is only one backend if len(backends) == 1 and 'email' not in backends: return redirect('social:begin', backends.pop()) return render( request, 'accounts/register.html', { 'registration_email': 'email' in backends, 'registration_backends': backends - set(['email']), 'title': _('User registration'), 'form': form, 'captcha_form': captcha_form, } )
def register(request): """Registration form.""" captcha = None if request.method == 'POST': form = RegistrationForm(request, request.POST) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request, form, request.POST) if ((captcha is None or captcha.is_valid()) and form.is_valid() and settings.REGISTRATION_OPEN): if form.cleaned_data['email_user']: AuditLog.objects.create( form.cleaned_data['email_user'], request, 'connect' ) return fake_email_sent(request) store_userid(request) return social_complete(request, 'email') else: form = RegistrationForm(request) if settings.REGISTRATION_CAPTCHA: captcha = CaptchaForm(request) backends = set(load_backends(social_django.utils.BACKENDS).keys()) # Redirect if there is only one backend if len(backends) == 1 and 'email' not in backends: return redirect_single(request, backends.pop()) return render( request, 'accounts/register.html', { 'registration_email': 'email' in backends, 'registration_backends': backends - set(['email']), 'title': _('User registration'), 'form': form, 'captcha_form': captcha, } )
def reset_password(request): """Password reset handling.""" if 'email' not in load_backends(BACKENDS).keys(): messages.error( request, _('Can not reset password, email authentication is disabled!')) return redirect('login') captcha_form = None if request.method == 'POST': form = ResetForm(request.POST) if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request, request.POST) if ((captcha_form is None or captcha_form.is_valid()) and form.is_valid()): # Force creating new session request.session.create() if request.user.is_authenticated: logout(request) if form.cleaned_data['email_user']: request.session['password_reset'] = True store_userid(request) return complete(request, 'email') else: request.session['registration-email-sent'] = True return redirect('email-sent') else: form = ResetForm() if settings.REGISTRATION_CAPTCHA: captcha_form = CaptchaForm(request) return render(request, 'accounts/reset.html', { 'title': _('Password reset'), 'form': form, 'captcha_form': captcha_form, })