Exemple #1
0
    def test_suggest_username_invalid_characters(self):
        """Test some invalid to Django usernames."""

        eq_("foobar", suggest_username("foo bar"))
        User.objects.create(username="******")
        eq_("foobar1", suggest_username("foo bar"))

        eq_("foobar1", suggest_username("foobar /1"))
        User.objects.create(username="******")
        eq_("foobar11", suggest_username("foobar /1"))
Exemple #2
0
def browserid_signup(request):
    next = request.REQUEST.get('next')
    redirect_to = next or getattr(settings, 'LOGIN_REDIRECT_URL', '/')
    redirect_to_failure = getattr(settings, 'LOGIN_REDIRECT_URL_FAILURE', '/')

    email = request.session.get('browserid-email', None)
    contributor = 'contributor' in request.POST

    if email:
        form = BrowserIDSignupForm(request.REQUEST)

        if form.is_valid():
            user = User.objects.create_user(form.cleaned_data['username'],
                                            email)
            user.save()

            # Create a new profile for the user
            Profile.objects.create(user=user, locale=request.LANGUAGE_CODE)

            # Check if the user should be added to the contributor group
            if contributor:
                add_to_contributors(request, user)

            # Log the user in
            user.backend = 'django_browserid.auth.BrowserIDBackend'
            auth.login(request, user)

            return redirect(redirect_to)
        else:
            form.fields['username'].initial = suggest_username(email)
            return render(request, 'users/browserid_signup.html',
                          {'persona_email': email, 'next': next, 'form': form,
                           'contributor': contributor})

    return redirect(redirect_to_failure)
Exemple #3
0
def browserid_signup(request, template):
    next = request.REQUEST.get("next")
    redirect_to = next or getattr(settings, "LOGIN_REDIRECT_URL", "/")
    redirect_to_failure = getattr(settings, "LOGIN_REDIRECT_URL_FAILURE", "/")

    email = request.session.get("browserid-email", None)
    contributor = "contributor" in request.POST

    if email:
        data = request.POST if request.method == "POST" else None
        form = BrowserIDSignupForm(data)

        if form.is_valid():
            user = User.objects.create_user(form.cleaned_data["username"], email)
            user.save()

            # Create a new profile for the user
            Profile.objects.create(user=user, locale=request.LANGUAGE_CODE)

            # Check if the user should be added to the contributor group
            if contributor:
                add_to_contributors(request, user)

            # Log the user in
            user.backend = "django_browserid.auth.BrowserIDBackend"
            auth.login(request, user)

            return redirect(redirect_to)
        else:
            form.fields["username"].initial = suggest_username(email)
            return render(
                request, template, {"persona_email": email, "next": next, "form": form, "contributor": contributor}
            )

    return redirect(redirect_to_failure)
Exemple #4
0
    def test_suggest_username(self):
        eq_('someuser', suggest_username('*****@*****.**'))

        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')

        eq_('someuser1', suggested)

        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')
        eq_('someuser1', suggested)

        User.objects.create(username='******')
        User.objects.create(username='******')
        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')
        eq_('rIcky2', suggested)
Exemple #5
0
    def test_suggest_username(self):
        eq_('someuser', suggest_username('*****@*****.**'))

        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')

        eq_('someuser1', suggested)

        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')
        eq_('someuser1', suggested)

        User.objects.create(username='******')
        User.objects.create(username='******')
        User.objects.create(username='******')
        suggested = suggest_username('*****@*****.**')
        eq_('rIcky2', suggested)
Exemple #6
0
    def test_suggest_username(self):
        eq_("someuser", suggest_username("*****@*****.**"))

        User.objects.create(username="******")
        suggested = suggest_username("*****@*****.**")

        eq_("someuser1", suggested)

        User.objects.create(username="******")
        suggested = suggest_username("*****@*****.**")
        eq_("someuser1", suggested)

        User.objects.create(username="******")
        User.objects.create(username="******")
        User.objects.create(username="******")
        suggested = suggest_username("*****@*****.**")
        eq_("rIcky2", suggested)

        User.objects.create(username="******")
        User.objects.create(username="******")
        User.objects.create(username="******")
        User.objects.create(username="******")
        suggested = suggest_username("*****@*****.**")
        eq_("user3", suggested)

        User.objects.create(username="******")
        User.objects.create(username="******")
        suggested = suggest_username("*****@*****.**")
        eq_("testuser+12", suggested)
Exemple #7
0
def browserid_signup(request, template):
    next = request.REQUEST.get('next')
    redirect_to = next or getattr(settings, 'LOGIN_REDIRECT_URL', '/')
    redirect_to_failure = getattr(settings, 'LOGIN_REDIRECT_URL_FAILURE', '/')

    email = request.session.get('browserid-email', None)
    contributor = 'contributor' in request.POST

    if email:
        data = request.POST if request.method == 'POST' else None
        form = BrowserIDSignupForm(data)

        if form.is_valid():
            user = User.objects.create_user(form.cleaned_data['username'],
                                            email)
            user.save()

            # Create a new profile for the user
            Profile.objects.create(user=user, locale=request.LANGUAGE_CODE)

            # Check if the user should be added to the contributor group
            if contributor:
                add_to_contributors(request, user)

            # Log the user in
            user.backend = 'django_browserid.auth.BrowserIDBackend'
            auth.login(request, user)

            return redirect(redirect_to)
        else:
            form.fields['username'].initial = suggest_username(email)
            return render(
                request, template, {
                    'persona_email': email,
                    'next': next,
                    'form': form,
                    'contributor': contributor
                })

    return redirect(redirect_to_failure)
Exemple #8
0
def browserid_verify(request):
    next = request.REQUEST.get('next')
    redirect_to = next or getattr(settings, 'LOGIN_REDIRECT_URL', '/')
    redirect_to_failure = getattr(settings, 'LOGIN_REDIRECT_URL_FAILURE', '/')

    form = BrowserIDForm(data=request.POST)

    if form.is_valid():
        result = verify(form.cleaned_data['assertion'], get_audience(request))
        if result:
            if request.user.is_authenticated():
                # User is already signed in so they must want an email change
                request.user.email = result['email']
                request.user.save()
                return redirect(reverse('users.edit_profile'))
            else:
                # Verified so log in
                email = result['email']
                user = User.objects.filter(email=email)
                contributor = 'contributor' in request.POST

                if len(user) == 0:
                    form = BrowserIDSignupForm()
                    request.session['browserid-email'] = email
                    form.fields['username'].initial = suggest_username(email)
                    return render(request, 'users/browserid_signup.html',
                                  {'persona_email': email, 'next': next,
                                   'form': form, 'contributor': contributor})
                else:
                    user = user[0]
                    user.backend = 'django_browserid.auth.BrowserIDBackend'

                    if contributor:
                        add_to_contributors(request, user)

                    auth.login(request, user)
                    return redirect(redirect_to)

    return redirect(redirect_to_failure)
Exemple #9
0
 def _username_algo(email):
     """Provide a default username for the user."""
     from kitsune.users.utils import suggest_username
     return suggest_username(email)