예제 #1
0
def signup_view(request):
    if request.method == "POST":
        form = SignupForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            new_user = MyUser.objects.create_user(username=data.get("username"), password=data.get("password"))
            login(request, new_user)
            return HttpResponseRedirect(reverse("home"))
    
    form = SignupForm()
    return render(request, "generic_form.html", {"form": form})
예제 #2
0
def signup_view(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            user = myuser.objects.create_user(username=data.get('username'),
                                              password=data.get('password'))

            login(request, user)
            return HttpResponseRedirect(reverse("home"))

    form = SignupForm()
    return render(request, 'generic_form.html', {"form": form})
예제 #3
0
def signup_view(request):
    form = SignupForm()
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            new_user = MyUser.objects.create(
                username=data.get('username'),
                displayname=data.get('displayname'),
                password=data.get('password'))
            login(request, new_user)
            return HttpResponseRedirect(reverse('home'))

    return render(request, 'generic_form.html', {'form': form})
예제 #4
0
 def test_correct_input(self):
     '''Tests form validity when given correct input.
 
     Keyword arguments:
     self -- the TestSignupForm object
     '''
     username_input = SignupForm(
         data={
             'username': '******',
             'email': '*****@*****.**',
             'password1': 'testPassword1',
             'password2': 'testPassword1'
         })
     self.assertTrue(username_input.is_valid())
예제 #5
0
def signup(request):
    path = request.get_full_path()
    if request.method == 'POST':
        form = SignupForm(data=request.POST, auto_id="%s")
        if form.is_valid():
            UserModel = get_user_model()
            username = form.cleaned_data['username']
            email = form.cleaned_data['email']
            password = form.cleaned_data['password']
            user = UserModel.objects.create_user(username=username,
                                                 email=email,
                                                 password=password)
            user.save()
            auth_user = authenticate(username=username, password=password)
            auth_login(request, auth_user)
            return redirect('/')
    else:
        form = SignupForm(auto_id='%s')
    return render(request, 'signup.html', locals())
예제 #6
0
def signup_view(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            new_user = MyUser.objects.create_user(
                firstname=data.get('firstname'),
                lastname=data.get('lastname'),
                username=data.get('firstname').lower() +
                data.get('lastname').lower(),
                password=data.get('password'),
                displayname=data.get('displayname'))
            login(request, new_user)
            return HttpResponseRedirect(reverse('homepage'))

    form = SignupForm()
    return render(request, 'generic_form.html', {
        'form': form,
        'signup': 'active'
    })
예제 #7
0
 def test_bad_format_email(self):
     '''Tests the expected form error and the number of errors present when given an improperly formatted email.
 
     Keyword arguments:
     self -- the TestSignupForm object
     '''
     signup_email_input = SignupForm(
         data={
             'username': '******',
             'email': 'notAnEmail',
             'password1': 'testPassword1',
             'password2': 'testPassword1'
         })
     num_errors = self._get_num_errors(signup_email_input)
     form_error = signup_email_input.errors.as_data()['email'][0].message
     self.assertTrue(form_error == "Enter a valid email address."
                     and num_errors == 1)
예제 #8
0
 def test_incorrect_email(self):
     '''Tests the expected form error and the number of errors present when given an email already associated with a user.
 
     Keyword arguments:
     self -- the TestSignupForm object
     '''
     signup_email_input = SignupForm(
         data={
             'username': '******',
             'email': '*****@*****.**',
             'password1': 'testPassword1',
             'password2': 'testPassword1'
         })
     num_error = self._get_num_errors(signup_email_input)
     form_error = signup_email_input.errors.as_data()['email'][0].message
     self.assertTrue(form_error == 'A user with that email already exists'
                     and num_error == 1)
예제 #9
0
 def test_mismatching_passwords(self):
     '''Tests the expected form error and the number of errors present when given mismatching passwords.
 
     Keyword arguments:
     self -- the TestSignupForm object
     '''
     signup_password_input = SignupForm(
         data={
             'username': '******',
             'email': '*****@*****.**',
             'password1': 'somePassword1',
             'password2': 'anotherPassword1'
         })
     num_errors = self._get_num_errors(signup_password_input)
     form_error = signup_password_input.errors.as_data(
     )['password2'][0].message
     self.assertTrue(form_error == "The two password fields didn’t match."
                     and num_errors == 1)
예제 #10
0
 def test_insecure_password(self):
     '''Tests the expected form error and the number of errors present when given insecure passwords.
     
     Passwords are insecure if they do not include at least 1 lowercase letter, 1 uppercase letter, and 1 number
 
     Keyword arguments:
     self -- the TestSignupForm object
     '''
     signup_password_input = SignupForm(
         data={
             'username': '******',
             'email': '*****@*****.**',
             'password1': 'insecurePassword',
             'password2': 'insecurePassword'
         })
     num_errors = self._get_num_errors(signup_password_input)
     form_error = signup_password_input.errors.as_data(
     )['__all__'][0].message
     self.assertTrue(
         form_error ==
         'Your password must be at least 6 letters long and contain at least one uppercase letter, one lowercase letter, and one digit'
         and num_errors == 1)