def post(self, request): form = SignupForm(request.POST, request.FILES) if form.is_valid(): # Creating user and profile try: with transaction.atomic(): new_user = User.objects.create( username=form.cleaned_data['login'], password=make_password(form.cleaned_data['password']), email=form.cleaned_data['email'], avatar=form.cleaned_data['avatar'], reg_date=datetime.datetime.now()) if new_user: MailSender().send(new_user.email, 'sign_up', context={"login": new_user.username}) return HttpResponseRedirect('/signup/done/') except Exception as error: message = 'Error while adding new user: '******'Error while adding new user, check fields ' return render(request, "index/signup.html", { "form": form, "message": message, "trends": Trend.get_trends() })
def signup(request): form = SignupForm(data=request.POST) if form.is_valid(): form.save(request=request) return redirect('/auth/sent') else: return render(request, 'user/signup.html', {'form': form})
def test_form_validation_for_password_mismatch(self): form = SignupForm( data={ 'email': '*****@*****.**', 'password1': 'abcdef123', 'password2': 'badcfe321' }) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['password2'], ['Les deux mots de passe ne correspondent pas.'])
def test_valid_form_send_mail(self, mock_get_current_site): form = SignupForm( data={ 'email': '*****@*****.**', 'password1': 'GoodPassword1234', 'password2': 'GoodPassword1234' }) self.assertTrue(form.is_valid()) form.save(self.request) self.assertEqual(len(mail.outbox), 1) sent_mail = mail.outbox[0] self.assertIn('*****@*****.**', sent_mail.body)
def test_user_valid_signupform(self): """ Tests if the user tries to create an account with valid values. """ data = { 'email': self.signup_email, 'password': self.password, 'pwd_confirm': self.password } form = SignupForm(data=data) self.assertTrue(form.is_valid()) self.assertEqual(self.signup_email, form.clean_email()) self.assertEqual(self.password, form.clean_pwd_confirm())
def test_valid_form_create_user(self, mock_get_current_site): form = SignupForm( data={ 'email': '*****@*****.**', 'password1': 'GoodPassword1234', 'password2': 'GoodPassword1234' }) self.assertTrue(form.is_valid()) form.save(self.request) self.assertEqual(Profile.objects.count(), 1) new_profile = Profile.objects.first() self.assertEqual(new_profile.email, '*****@*****.**') self.assertFalse(new_profile.is_active)
def test_form_validation_for_duplicate_inactive_user(self): self.user1 = baker.make( Profile, username='******', email='*****@*****.**', is_active=False, ) form = SignupForm( data={ 'email': self.user1.email, 'password1': 'GoodPassword1234', 'password2': 'GoodPassword1234' }) self.assertTrue(form.is_valid()) self.assertEqual(len(form.errors), 0)
def test_form_validation_for_duplicate_active_user(self): self.user1 = baker.make( Profile, username='******', email='*****@*****.**', is_active=True, ) form = SignupForm( data={ 'email': self.user1.email, 'password1': 'GoodPassword1234', 'password2': 'GoodPassword1234' }) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['email'], [DUPLICATE_USER_ERROR])
def signup_view(request): if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): form.save() email = form.cleaned_data.get('email') username = form.cleaned_data.get('username') raw_password = form.cleaned_data.get('password1') user = authenticate(email=email, password=raw_password) user_try_login = login(request, user) return redirect('accounts:index') else: messages.error(request, "Please check the fields.") else: form = SignupForm() context = {'form': form} return render(request, 'user/signup.html', context)
def register(request): if request.method == "POST": form = SignupForm(data=request.POST) if form.is_valid(): form.save() username = form.cleaned_data.get('username') raw_password = form.cleaned_data.get('password1') user = authenticate(username=username, password=raw_password) login(request, user) messages.info(request, 'Registration successful!') messages.info(request, 'You can now login.') return redirect('home') else: messages.error(request, 'Registration failed!') messages.error(request, form.errors) context = {'form': SignupForm(), 'style': 'user.css'} return render(request, 'user/register.html', context)
def signup(request): if request.user.is_authenticated: return redirect('/') if request.method == 'POST': form = SignupForm(request.POST, request.FILES) if form.is_valid(): user = form.save(commit=False) user.is_active = False user.save() verify_email(request, user) return HttpResponse( '<h1 align="center">Verify Your Email. Check Your Mailbox</h1>' ) else: form = SignupForm() context = {'form': form} return render(request, 'user/auth/signup.html', context)
def signup_page(request): if request.method == "POST": form = SignupForm(request.POST) if form.is_valid(): user_id = form.cleaned_data["ID"] if User.objects.filter(username=user_id).exists(): messages.info(request, "이미 존재하는 유저이름입니다.") elif form.cleaned_data["PW"] != form.cleaned_data["PW_C"]: messages.info(request, "비밀번호가 서로 일치하지 않습니다.") else: user_pw = form.cleaned_data["PW"] first_name = form.cleaned_data["first_name"] add_list = User(username=user_id, first_name=first_name) add_list.set_password(user_pw) add_list.save() messages.info(request, "회원가입이 정상적으로 완료되었습니다.") return HttpResponseRedirect(reverse("post:index")) form = SignupForm() return render(request, "user/signup.html", {"form": form})
def signup(request): try: args={} form = SignupForm() if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): cd = form.cleaned_data s_first_name = cd['first_name'] s_last_name = cd['last_name'] s_username = cd['username'] s_password = '******' p_first_name = cd['p_first_name'] p_last_name = cd['p_last_name'] p_username = cd['p_username'] p_email = cd['p_email'] p_password = '******' result = User.objects.create_user(password=s_password, username=s_username, first_name=s_first_name, last_name=s_last_name, email = '*****@*****.**') rslt = User.objects.create_user(password=p_password, username=p_username, first_name=p_first_name, last_name=p_last_name, email =p_email) if rslt: stud_parent = StudentParent.objects.create(parent_id=rslt.id, student_id=result.id) messages.add_message(request, messages.INFO, "Welcome, You are Registered Successfully.") return HttpResponseRedirect('/test/') else: messages.add_message(request, messages.ERROR, "Error occured during registration. Please Try Again.") return render(request, 'user/signup.html') else: args['form'] = form return render(request, 'user/signup.html', args) else: return render(request, 'user/signup.html', {'form':form}) except: messages.add_message(request, messages.ERROR, sys.exc_info()[1]) return render(request, 'user/signup.html', {'form':form})
def Signup(request): if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') email = form.cleaned_data.get('email') first_name = form.cleaned_data.get('first_name') last_name = form.cleaned_data.get('last_name') password = form.cleaned_data.get('password') User.objects.create_user(username=username, email=email, first_name=first_name, last_name=last_name, password=password) return redirect('login') else: form = SignupForm() context = { 'form': form, } return render(request, 'auth/signup.html', context)
def user_signup(request): if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') fname = form.cleaned_data.get('fname') lname = form.cleaned_data.get('lname') password = form.cleaned_data.get('password').encode("utf-8") conf_password = form.cleaned_data.get('confirm_password').encode( "utf-8") #checking if two passwords from form are matching or not if password == conf_password: #checking if any user exists with same username if User.objects.filter(username=username).exists(): messages.info(request, f'Username exists') return redirect('user_signup') #else we go with hashing password else: #Password Hashing hashed_password = bcrypt.hashpw(password, bcrypt.gensalt()) #create user with create and assigning form values to model u = User.objects.create(username=username, fname=fname, lname=lname, password=hashed_password) #saving the data to database and committing it u.save() #after save we redirect user to home and render books favourited by user return redirect('user_home') messages.success(request, f'Account created for { username}!') else: messages.error(request, f'passwords mismatch', 'warning') else: form = SignupForm() return render(request, 'user/user_signup.html', {'form': form})
def test_form_validation_for_blank_email(self): form = SignupForm(data={'email': ''}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['email'], [EMPTY_EMAIL_ERROR])