Beispiel #1
0
def handle_register(request,
                    text_template=None,
                    html_template=None,
                    subject=None,
                    email_data=None,
                    *args,
                    **kwargs):
    """Handle to help registration."""
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            form = try_send_email_with_form(
                RegistrationProfile.objects.create_inactive_user,
                form,
                'email',
                form.cleaned_data['username'],
                form.cleaned_data['password'],
                form.cleaned_data['email'],
                locale=request.LANGUAGE_CODE,
                text_template=text_template,
                html_template=html_template,
                subject=subject,
                email_data=email_data,
                volunteer_interest=form.cleaned_data['interested'],
                *args,
                **kwargs)
            if not form.is_valid():
                # Delete user if form is not valid, i.e. email was not sent.
                # This is in a POST request and so always pinned to master,
                # so there is no race condition.
                User.objects.filter(email=form.instance.email).delete()
            else:
                statsd.incr('user.register')
        return form
    return RegisterForm()
Beispiel #2
0
 def test_bad_username(self):
     #  Simple match.
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'adssadfsadf1',
         'email': '*****@*****.**'
     })
     assert not form.is_valid()
     # Simple obfuscation.
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'adssadfsadf1',
         'email': '*****@*****.**'
     })
     assert not form.is_valid()
     # Partial match.
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'adssadfsadf1',
         'email': '*****@*****.**'
     })
     assert not form.is_valid()
     # No match.
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'adssadfsadf1',
         'email': '*****@*****.**'
     })
     assert form.is_valid()
Beispiel #3
0
 def test_strong_password(self):
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'fksjvaj1',
         'email': '*****@*****.**'
     })
     assert form.is_valid()
Beispiel #4
0
 def test_common_password(self):
     form = RegisterForm({
         'username': '******',
         'password': '******',
         'password2': 'password',
         'email': '*****@*****.**'
     })
     assert not form.is_valid()
Beispiel #5
0
def validate_field(request):
    data = {'valid': True}

    field = request.GET.get('field')
    value = request.GET.get('value')
    form = RegisterForm()

    try:
        form.fields[request.GET.get('field')].clean(request.GET.get('value'))
    except ValidationError, e:
        data = {'valid': False, 'error': e.messages[0]}
Beispiel #6
0
def user_auth(request, contributor=False, register_form=None, login_form=None):
    """Try to log the user in, or register a user.

    POSTs from these forms do not come back to this view, but instead go to the
    login and register views, which may redirect back to this in case of error.
    """
    next_url = get_next_url(request) or reverse('home')

    if login_form is None:
        login_form = AuthenticationForm()
    if register_form is None:
        register_form = RegisterForm()

    return render(request, 'users/auth.html', {
        'login_form': login_form,
        'register_form': register_form,
        'contributor': contributor,
        'next_url': next_url})