Exemple #1
0
 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
Exemple #6
0
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),
    )