Example #1
0
def resend_confirmation(request, template):
    """Resend confirmation email."""
    if request.method == 'POST':
        form = EmailConfirmationForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            try:
                reg_prof = RegistrationProfile.objects.get(user__email=email)
                if not reg_prof.user.is_active:
                    form = try_send_email_with_form(
                        RegistrationProfile.objects.send_confirmation_email,
                        form, 'email', reg_prof)
                else:
                    form = try_send_email_with_form(
                        RegistrationProfile.objects.send_confirmation_email,
                        form,
                        'email',
                        reg_prof,
                        text_template='users/email/already_activated.ltxt',
                        html_template='users/email/already_activated.html',
                        subject=_('Account already activated'))
            except RegistrationProfile.DoesNotExist:
                # Send already active email if user exists
                try:
                    user = User.objects.get(email=email, is_active=True)

                    current_site = Site.objects.get_current()
                    email_kwargs = {
                        'domain': current_site.domain,
                        'login_url': reverse('users.login')
                    }

                    subject = _('Account already activated')
                    message = email_utils.render_email(
                        'users/email/already_activated.ltxt', email_kwargs)

                    # TODO: Send HTML email here.
                    form = try_send_email_with_form(
                        mail.send_mail, form, 'email', subject, message,
                        settings.DEFAULT_FROM_EMAIL, [user.email])
                except User.DoesNotExist:
                    # Don't leak existence of email addresses.
                    pass
            # Form may now be invalid if email failed to send.
            if form.is_valid():
                return render(request,
                              template + 'resend_confirmation_done.html',
                              {'email': email})
    else:
        form = EmailConfirmationForm()
    return render(request, template + 'resend_confirmation.html',
                  {'form': form})
Example #2
0
def send_email_reminder(request):
    """Send reminder email."""
    statsd_waffle_incr('users.send_email_reminder', 'signin_metrics')
    if request.method == 'POST':
        statsd_waffle_incr('users.send_email_reminder.POST', 'signin_metrics')
        form = EmailReminderForm(request.POST)
        if form.is_valid():
            error = None
            username = form.cleaned_data['username']
            try:
                user = User.objects.get(username=username, is_active=True)
                if user.email:
                    # TODO: should this be on a model or manager instead?
                    statsd_waffle_incr('users.send_email_reminder.SUCCESS',
                                      'signin_metrics')
                    send_reminder_email(user)
                else:
                    statsd_waffle_incr('users.send_email_reminder.NOEMAIL',
                                      'signin_metrics')
                    error = 'no_email'
            except User.DoesNotExist:
                # Don't leak existence of email addresses.
                statsd_waffle_incr('users.send_email_reminder.NOUSER',
                                  'signin_metrics')
            return jingo.render(request,
                                'users/send_email_reminder_done.html',
                                {'username': username, 'error': error})
    else:
        form = EmailConfirmationForm()
    return jingo.render(request, 'users/resend_confirmation.html',
                        {'form': form})
Example #3
0
File: views.py Project: gerv/kuma
def resend_confirmation(request):
    """Resend confirmation email."""
    if request.method == 'POST':
        form = EmailConfirmationForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            try:
                reg_prof = RegistrationProfile.objects.get(
                    user__email=email, user__is_active=False)
                RegistrationProfile.objects.send_confirmation_email(reg_prof)
            except RegistrationProfile.DoesNotExist:
                # Don't leak existence of email addresses.
                pass
            return render(request, 'users/resend_confirmation_done.html',
                          {'email': email})
    else:
        form = EmailConfirmationForm()
    return render(request, 'users/resend_confirmation.html', {'form': form})
Example #4
0
def send_email_reminder(request):
    """Send reminder email."""
    if request.method == 'POST':
        form = EmailReminderForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            try:
                user = User.objects.get(username=username, is_active=True)
                # TODO: should this be on a model or manager instead?
                send_reminder_email(user)
            except User.DoesNotExist:
                # Don't leak existence of email addresses.
                pass
            return jingo.render(request, 'users/send_email_reminder_done.html',
                                {'username': username})
    else:
        form = EmailConfirmationForm()
    return jingo.render(request, 'users/resend_confirmation.html',
                        {'form': form})
Example #5
0
def send_email_reminder(request):
    """Send reminder email."""
    if request.method == 'POST':
        form = EmailReminderForm(request.POST)
        if form.is_valid():
            error = None
            username = form.cleaned_data['username']
            try:
                user = User.objects.get(username=username, is_active=True)
                if user.email:
                    send_reminder_email(user)
                else:
                    error = 'no_email'
            except User.DoesNotExist:
                # Don't leak existence of email addresses.
                pass
            return render(request, 'users/send_email_reminder_done.html', {
                'username': username,
                'error': error
            })
    else:
        form = EmailConfirmationForm()
    return render(request, 'users/resend_confirmation.html', {'form': form})
 def test_invalid_email_address(self):
     form = EmailConfirmationForm(self.user,
                                  data={'email': '[email protected]'})
     assert not form.is_valid()
 def test_correct_email(self):
     form = EmailConfirmationForm(self.user,
                                  data={'email': '*****@*****.**'})
     assert form.is_valid()