def confirm_email(self, confirmation_key): try: confirmation = self.get(confirmation_key=confirmation_key) except self.model.DoesNotExist: return None if not confirmation.key_expired(): email_address = confirmation.email_address email_address.verified = True email_address.set_as_primary(conditional=True) email_address.save() email_confirmed.send(sender=self.model, email_address=email_address) return email_address
def confirm_email(self, confirmation_key): try: confirmation = self.get(confirmation_key=confirmation_key) except self.model.DoesNotExist: return None if not confirmation.key_expired(): email_address = confirmation.email_address email_address.verified = True email_address.set_as_primary(conditional=True) email_address.save() email_confirmed.send(sender=self.model, email_address=email_address) # sweep away all unverified email addresses that match if UNIQUE_EMAIL_ADDRESS_PER_USER: EmailAddress.objects.filter(verified=False, email=email_address).all().delete() return email_address
def confirm_email(self, key, user=None, make_primary=True): queryset = self.all() if user: queryset = queryset.filter(email_address__user=user) try: confirmation = queryset.get(key=key) except self.model.DoesNotExist: return None if not confirmation.key_expired(): email_address = confirmation.email_address email_address.verified = True if make_primary: email_address.set_as_primary() email_address.save() email_confirmed.send(sender=self.model, email_address=email_address) return email_address
def confirm_email(self, confirmation_key): """Set confirmed status for email Redundant confirmations will be deleted, invalidating them. :param confirmation_key: hexadecimal string - a secure hash as returned by hashlib.sha1().hexdigest() :return: None or confirmed EmailAddress """ try: confirmation = self.get(confirmation_key=confirmation_key) except self.model.DoesNotExist: return None if not confirmation.key_expired(): email_address = confirmation.email_address email_address.verified = True email_address.set_as_primary(conditional=True) email_address.save() email_confirmed.send(sender=self.model, email_address=email_address) # Delete all confirmations for this email confirmations = self.filter(email_address=email_address).delete() return email_address
def confirm_email(self, confirmation_key): """Set confirmed status for email Redundant confirmations will be deleted, invalidating them. :param confirmation_key: hexadecimal string - a secure hash as returned by hashlib.sha1().hexdigest() :return: None or confirmed EmailAddress """ try: confirmation = self.get(confirmation_key=confirmation_key) except self.model.DoesNotExist: return None if not confirmation.key_expired(): email_address = confirmation.email_address email_address.verified = True email_address.set_as_primary(conditional=True) email_address.save() email_confirmed.send(sender=self.model, email_address=email_address) # Delete all confirmations for this email confirmations = self.filter(email_address=email_address).delete() return email_address
def email(request, form_class=AddEmailForm, template_name="account/email.html", username=None): if username: if not request.user.has_module_perms("profiles"): return HttpResponseForbidden() else: user = get_object_or_404(User, username=username) else: user = request.user if request.method == "POST" and request.user.is_authenticated(): if request.POST["action"] == "add": add_email_form = form_class(user, request.POST) if add_email_form.is_valid(): add_email_form.save() add_email_form = form_class() # @@@ else: add_email_form = form_class(user) if request.POST["action"] == "send": email = request.POST["email"] try: email_address = EmailAddress.objects.get(user=user, email=email) request.user.message_set.create( message=_("Confirmation email sent to %(email)s") % {"email": email} ) EmailConfirmation.objects.send_confirmation(email_address) except EmailAddress.DoesNotExist: pass elif request.POST["action"] == "manual_verify": if request.user.has_module_perms("profiles"): email = request.POST["email"] try: email_address = EmailAddress.objects.get(user=user, email=email) email_address.verified = True email_address.set_as_primary(conditional=True) email_address.save() email_confirmed.send(sender=EmailAddress, email_address=email_address) request.user.message_set.create( message=_("Confirmed %(email)s as a valid email") % {"email": email} ) except EmailAddress.DoesNotExist: pass else: request.user.message_set.create(message=_("You don't have permission to do this!")) elif request.POST["action"] == "remove": email = request.POST["email"] try: email_address = EmailAddress.objects.get(user=user, email=email) email_address.delete() request.user.message_set.create(message=_("Removed email address %(email)s") % {"email": email}) except EmailAddress.DoesNotExist: pass elif request.POST["action"] == "primary": email = request.POST["email"] email_address = EmailAddress.objects.get(user=user, email=email) if user.nomail and user.bouncing: user.nomail = False user.bouncing = False user.save() email_address.set_as_primary() else: add_email_form = form_class() emails = user.emailaddress_set.all().order_by("-primary", "-verified", "email") mailchimp_enable = settings.MAILCHIMP_SUBSCRIBE return render_to_response( template_name, { "add_email_form": add_email_form, "other_user": user, "is_me": user == request.user, "emails": emails, "mailchimp_enable": mailchimp_enable, }, context_instance=RequestContext(request), )