def email(request, **kwargs): form_class = kwargs.pop("form_class", AddEmailForm) template_name = kwargs.pop("template_name", "account/email.html") sync_user_email_addresses(request.user) if request.method == "POST" and request.user.is_authenticated(): if "action_add" in request.POST: add_email_form = form_class(request.user, request.POST) if add_email_form.is_valid(): email_address = add_email_form.save(request) messages.add_message(request, messages.INFO, ugettext(u"Confirmation e-mail sent to %(email)s") % { "email": add_email_form.cleaned_data["email"] } ) signals.email_added.send(sender=request.user.__class__, request=request, user=request.user, email_address=email_address) return HttpResponseRedirect(reverse('account_email')) else: add_email_form = form_class() if request.POST.get("email"): if "action_send" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) messages.add_message(request, messages.INFO, ugettext("Confirmation e-mail sent to %(email)s") % { "email": email, } ) email_address.send_confirmation(request) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_remove" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email ) if email_address.primary: messages.add_message \ (request, messages.ERROR, ugettext("You cannot remove your primary" " e-mail address (%(email)s)") % { "email": email }) else: email_address.delete() signals.email_removed.send(sender=request.user.__class__, request=request, user=request.user, email_address=email_address) messages.add_message(request, messages.SUCCESS, ugettext("Removed e-mail address %(email)s") % { "email": email, } ) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_primary" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) if not email_address.verified and \ EmailAddress.objects.filter( user=request.user, verified=True#, #primary=True # Slightly different variation, don't # require verified unless moving from a # verified address. Ignore constraint # if previous primary email address is # not verified. ).exists(): messages.add_message(request, messages.ERROR, ugettext("Your primary e-mail address must " "be verified")) else: # Sending the old primary address to the signal # adds a db query. try: from_email_address = EmailAddress.objects.get( user=request.user, primary=True ) except EmailAddress.DoesNotExist: from_email_address = None email_address.set_as_primary() messages.add_message(request, messages.SUCCESS, ugettext("Primary e-mail address set")) signals.email_changed.send( sender=request.user.__class__, request=request, user=request.user, from_email_address=from_email_address, to_email_address=email_address) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass else: add_email_form = form_class() ctx = { "add_email_form": add_email_form } return render_to_response(template_name, RequestContext(request, ctx))
def email(request, **kwargs): form_class = kwargs.pop("form_class", AddEmailForm) template_name = kwargs.pop("template_name", "account/email.html") sync_user_email_addresses(request.user) if request.method == "POST" and request.user.is_authenticated(): if "action_add" in request.POST: add_email_form = form_class(request.user, request.POST) if add_email_form.is_valid(): email_address = add_email_form.save(request) messages.add_message( request, messages.INFO, ugettext(u"Confirmation e-mail sent to %(email)s") % {"email": add_email_form.cleaned_data["email"]}) signals.email_added.send(sender=request.user.__class__, request=request, user=request.user, email_address=email_address) return HttpResponseRedirect(reverse('account_email')) else: add_email_form = form_class() if request.POST.get("email"): if app_settings.USE_EMAIL_VERIFICATION and "action_send" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) messages.add_message( request, messages.INFO, ugettext("Confirmation e-mail sent to %(email)s") % { "email": email, }) email_address.send_confirmation(request) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_remove" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email) if email_address.primary: messages.add_message \ (request, messages.ERROR, ugettext("You cannot remove your primary" " e-mail address (%(email)s)") % { "email": email }) else: email_address.delete() messages.add_message( request, messages.SUCCESS, ugettext("Removed e-mail address %(email)s") % { "email": email, }) return HttpResponseRedirect( reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_primary" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) if not email_address.verified and \ EmailAddress.objects.filter( user=request.user, verified=True#, #primary=True # Slightly different variation, don't # require verified unless moving from a # verified address. Ignore constraint # if previous primary email address is # not verified. ).exists(): messages.add_message( request, messages.ERROR, ugettext("Your primary e-mail address must " "be verified")) else: # Sending the old primary address to the signal # adds a db query. try: from_email_address = EmailAddress.objects.get( user=request.user, primary=True) except EmailAddress.DoesNotExist: from_email_address = None email_address.set_as_primary() messages.add_message( request, messages.SUCCESS, ugettext("Primary e-mail address set")) signals.email_changed.send( sender=request.user.__class__, request=request, user=request.user, from_email_address=from_email_address, to_email_address=email_address) return HttpResponseRedirect( reverse('account_email')) except EmailAddress.DoesNotExist: pass else: add_email_form = form_class() ctx = { "add_email_form": add_email_form, "email_verification_enabled": app_settings.USE_EMAIL_VERIFICATION } return render_to_response(template_name, RequestContext(request, ctx))
def email(request, **kwargs): form_class = kwargs.pop("form_class", AddEmailForm) template_name = kwargs.pop("template_name", "account/email.html") sync_user_email_addresses(request.user) if request.method == "POST" and request.user.is_authenticated(): if request.POST.has_key("action_add"): add_email_form = form_class(request.user, request.POST) if add_email_form.is_valid(): add_email_form.save() messages.add_message(request, messages.INFO, ugettext(u"Confirmation e-mail sent to %(email)s") % { "email": add_email_form.cleaned_data["email"] } ) add_email_form = form_class() # @@@ else: add_email_form = form_class() if request.POST.get("email"): if request.POST.has_key("action_send"): email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) messages.add_message(request, messages.INFO, ugettext("Confirmation e-mail sent to %(email)s") % { "email": email, } ) EmailConfirmation.objects.send_confirmation(email_address) except EmailAddress.DoesNotExist: pass elif request.POST.has_key("action_remove"): email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email ) email_address.delete() messages.add_message(request, messages.SUCCESS, ugettext("Removed e-mail address %(email)s") % { "email": email, } ) except EmailAddress.DoesNotExist: pass elif request.POST.has_key("action_primary"): email = request.POST["email"] email_address = EmailAddress.objects.get( user=request.user, email=email, ) email_address.set_as_primary() messages.add_message(request, messages.SUCCESS, ugettext("Primary e-mail address set")) else: add_email_form = form_class() ctx = { "add_email_form": add_email_form } return render_to_response(template_name, RequestContext(request, ctx))
def email(request, **kwargs): form_class = kwargs.pop("form_class", AddEmailForm) template_name = kwargs.pop("template_name", "account/email.html") sync_user_email_addresses(request.user) if request.method == "POST" and request.user.is_authenticated(): if "action_add" in request.POST: add_email_form = form_class(request.user, request.POST) if add_email_form.is_valid(): add_email_form.save(request) messages.add_message(request, messages.INFO, ugettext(u"Confirmation e-mail sent to %(email)s") % { "email": add_email_form.cleaned_data["email"] } ) return HttpResponseRedirect(reverse('account_email')) else: add_email_form = form_class() if request.POST.get("email"): if "action_send" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) messages.add_message(request, messages.INFO, ugettext("Confirmation e-mail sent to %(email)s") % { "email": email, } ) email_address.send_confirmation(request) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_remove" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email ) if email_address.primary: messages.add_message \ (request, messages.ERROR, ugettext("You cannot remove your primary" " e-mail address (%(email)s)") % { "email": email }) else: email_address.delete() messages.add_message(request, messages.SUCCESS, ugettext("Removed e-mail address %(email)s") % { "email": email, } ) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass elif "action_primary" in request.POST: email = request.POST["email"] try: email_address = EmailAddress.objects.get( user=request.user, email=email, ) email_address.set_as_primary() messages.add_message(request, messages.SUCCESS, ugettext("Primary e-mail address set")) return HttpResponseRedirect(reverse('account_email')) except EmailAddress.DoesNotExist: pass else: add_email_form = form_class() ctx = { "add_email_form": add_email_form } return render_to_response(template_name, RequestContext(request, ctx))