def test_help_text_translation(self): french_help_texts = [ 'Votre mot de passe ne peut pas trop ressembler à vos autres informations personnelles.', 'Votre mot de passe doit contenir au minimum 12 caractères.', ] form = SetPasswordForm(self.u1) with translation.override('fr'): html = form.as_p() for french_text in french_help_texts: self.assertIn(french_text, html)
def change_password(request): """ Used in the workflow at first connection of a new user. This function implements the Group to which the user belongs. """ if request.method == "POST": form = SetPasswordForm(user=request.user, data=request.POST) if form.is_valid(): user = form.save() # Attributes to a user a group depending on his status. user.groups.add(Group.objects.get(name=user.status_type)) update_session_auth_hash(request, user) # Important! messages.success(request, 'Votre mot de passe a été changé') return redirect(reverse_lazy('pages:home')) else: messages.error(request, 'S\'il vous plait, corrigez l\'erreur.') else: form = SetPasswordForm(request.user) return render(request, 'accounts/change_password.html', {'form': form})
def post(self, request): if request.user.is_authenticated(): return HttpResponseRedirect('/') form = SetPasswordForm(data=request.POST) if form.is_valid(): form.save() HttpResponseRedirect('/') return render_to_response('registration/set_password_form.html', {'form': form}, context_instance=RequestContext(request))
def password_reset_confirm(request, key): template = loader.get_template('acounts/password_reset_confirm.html') context = {} reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() context['success'] = True context['form'] = form return HttpResponse(template.render(context, request))
def pass_settings(request): form = SetPasswordForm(request.user) context = { 'username': request.user.username, } if request.method == 'POST': form = SetPasswordForm(request.user, request.POST) if form.is_valid(): form.save() user = auth.authenticate(username=request.user.email, password=request.POST.get( 'new_password1', '')) if user is not None: auth.login(request, user) context['success'] = "Password updated successfully." context['form'] = form return render(request, 'accounts/pass_settings.html', context)
def change_password(req, user=''): args = dict() if user: _user = get_object_or_404(User, id=user) if req.user.is_staff or req.user.id == _user.id: if req.method == 'POST': form = SetPasswordForm(_user, req.POST) if form.is_valid(): form.save() return redirect(reverse('tracker:general')) else: args['form'] = form else: form = SetPasswordForm(_user) args['form'] = form args['user_id'] = user bootstraped_form(form) return render(req, 'change_password/index.html', args) return redirect(reverse('tracker:general'))
def test_mismatching_passwords(self): form = SetPasswordForm(user=self.user, data={ "new_password1": "OnePassword!2", "new_password2": "OtherPassword!2" }) self.assertFalse(form.is_valid()) self.assertIn('password_mismatch', self.get_error_message_code(form.errors))
def missing_digit(self): form = SetPasswordForm(user=self.user, data={ "new_password1": "password!", "new_password2": "password!" }) self.assertFalse(form.is_valid()) self.assertIn('password_no_digit', self.get_error_message_code(form.errors))
def missing_small_letter(self): form = SetPasswordForm(user=self.user, data={ "new_password1": "1PASSWORD!", "new_password2": "1PASSWORD!" }) self.assertFalse(form.is_valid()) self.assertIn('password_no_lowercase_character', self.get_error_message_code(form.errors))
def test_missing_capital_letter(self): form = SetPasswordForm(user=self.user, data={ "new_password1": "1password!", "new_password2": "1password!" }) self.assertFalse(form.is_valid()) self.assertIn('password_no_uppercase_character', self.get_error_message_code(form.errors))
def test_password_whitespace_not_stripped(self): user = User.objects.get(username='******') data = { 'new_password1': ' password ', 'new_password2': ' password ', } form = SetPasswordForm(user, data) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data['new_password1'], data['new_password1']) self.assertEqual(form.cleaned_data['new_password2'], data['new_password2'])
def password_reset_confirmation(request, key): template_name = 'accounts/password_reset_confirmation.html' context = {} reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() context['success'] = True context['form'] = form return render(request, template_name, context)
def updateDirectoryProfile(request): perm = general_methods.control_access(request) if not perm: logout(request) return redirect('accounts:login') user = request.user directory_user = DirectoryMember.objects.get(user=user) person = Person.objects.get(pk=directory_user.person.pk) communication = Communication.objects.get( pk=directory_user.communication.pk) user_form = DisabledUserForm(request.POST or None, instance=user) person_form = DisabledPersonForm(request.POST or None, instance=person) communication_form = DisabledCommunicationForm(request.POST or None, instance=communication) member_form = DisabledDirectoryForm(request.POST or None, instance=directory_user) password_form = SetPasswordForm(request.user, request.POST) if request.method == 'POST': if user_form.is_valid() and communication_form.is_valid( ) and person_form.is_valid() and member_form.is_valid( ) and password_form.is_valid(): user.username = user_form.cleaned_data['email'] user.first_name = user_form.cleaned_data['first_name'] user.last_name = user_form.cleaned_data['last_name'] user.email = user_form.cleaned_data['email'] user.set_password(password_form.cleaned_data['new_password1']) user.save() person_form.save() communication_form.save() member_form.save() password_form.save() messages.success(request, 'Yönetim Kurul Üyesi Başarıyla Güncellenmiştir.') return redirect('sbs:yonetim-kurul-profil-guncelle') else: messages.warning(request, 'Alanları Kontrol Ediniz') return render( request, 'yonetim/yonetim-kurul-profil-guncelle.html', { 'user_form': user_form, 'communication_form': communication_form, 'person_form': person_form, 'password_form': password_form, 'member_form': member_form })
def updateUrlProfile(request): if request.method == 'GET': try: data = request.GET.get('query') gelen = Forgot.objects.get(uuid=data) user = gelen.user password_form = SetPasswordForm(user) if gelen.status == False: gelen.status = True gelen.save() return render(request, 'registration/newPassword.html', {'password_form': password_form}) else: return redirect('accounts:login') except: return redirect('accounts:login') if request.method == 'POST': try: gelen = Forgot.objects.get(uuid=request.GET.get('query')) password_form = SetPasswordForm(gelen.user, request.POST) user = gelen.user if password_form.is_valid(): user.set_password(password_form.cleaned_data['new_password1']) user.save() # zaman kontrolüde yapilacak gelen.status = True messages.success(request, 'Şifre Başarıyla Güncellenmiştir.') return redirect('accounts:login') else: messages.warning(request, 'Alanları Kontrol Ediniz') return render(request, 'registration/newPassword.html', {'password_form': password_form}) except: return redirect('accounts:login') return render(request, 'accounts/index.html')
def resetarSenhaConfirmacao(request, key): nome_template = 'contas/resetarSenhaConfirmacao.html' reset = get_object_or_404(ResetarSenha, key=key) contexto = {'reset':reset} form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() contexto['success'] = True contexto['form'] = form; return render(request,nome_template, contexto)
def password_reset_confirm(request, key): template_name = 'accounts/password_reset_confirm.html' context = {} reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() messages.success(request, "Sua senha foi criada com sucesso") return redirect('accounts:dashboard') context['form'] = form return render(request, template_name, context)
def password_reset_confirm(request, key): template_name = 'accounts/password_reset_confirm.html' context = {} # para validação de formulário esta é outra forma elegante de se usar reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() context['success'] = True context['form'] = form return render(request, template_name, context)
def create_new_password(request, id, token): user = User.objects.get(id=id) if default_token_generator.check_token(user, token): form = SetPasswordForm(user, request.POST or None) if form.is_valid(): form.save() return redirect('login') context = {'form': form} return render(request, 'nova_senha.html', context) raise Http404
def post(self, request): senha_form = SetPasswordForm(request.user, request.POST) if senha_form.is_valid(): senha_form.save() org = Organizador.objects.get(user=request.user) org.has_changed_password = True org.save() return redirect('core:login') template_name = 'organizador/nova_senha.html' context = {'senha_form': senha_form} return render(request, template_name, context)
def password_reset_confirm(request, key): template_name = 'accounts/password_reset_confirm.html' context = {} reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() messages.add_message(request, messages.INFO, 'Sucesso') reset.delete() context['form'] = form return render(request, template_name, context)
def initial_password_setup(request): """ Used by user to set his password when connecting the first time (when directly created through VosaeUser pre_save hook) """ if request.user.has_usable_password(): return redirect('root') if request.method == 'POST': form = SetPasswordForm(request.user, request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('root')) else: form = SetPasswordForm(None) context = { 'form': form, } return TemplateResponse(request, 'account/initial_password_setup.html', context)
def obj_create(self, bundle, **kwargs): if bundle.request.user: form = SetPasswordForm(bundle.request.user, data=bundle.data) if form.is_valid(): bundle.obj = form.save() else: raise ImmediateHttpResponse(response=self.error_response( bundle.request, {'errors': form.errors})) return bundle
def employee_set_password(request, uid): user = get_object_or_404(User, pk=uid) if request.method == 'POST': form = SetPasswordForm(user, request.POST) if form.is_valid(): user = form.save() login(request, user) messages.success( request, 'Welcome ' + user.email + '. Your account is now operational') return redirect('core:login_redirect') else: form = SetPasswordForm(user) return render(request, 'core/employee/set_password.html', { 'set_password_form': form, 'user': user })
def test_password_verification(self): # The two new passwords do not match. user = User.objects.get(username='******') data = { 'new_password1': 'abc123', 'new_password2': 'abc', } form = SetPasswordForm(user, data) self.assertFalse(form.is_valid()) self.assertEqual(form["new_password2"].errors, [force_text(form.error_messages['password_mismatch'])])
def test_form_fields_n_inputs(self): """Tests if the reset pwd confirm form looks like it should""" user = get_user(self.client) form = SetPasswordForm(user) expected = ['new_password1', 'new_password2'] actual = list(form.fields) self.assertSequenceEqual(expected, actual) self.assertContains(self.pwd_reset_confirm_response, '<input', 3) self.assertContains(self.pwd_reset_confirm_response, 'type="password"', 2) self.assertContains(self.pwd_reset_confirm_response, 'type="submit"')
def test_password_verification(self): # The two new passwords do not match. user = User.objects.get(username='******') data = { 'new_password1': 'abc123', 'new_password2': 'abc', } form = SetPasswordForm(user, data) self.assertFalse(form.is_valid()) self.assertEqual(form["new_password2"].errors, [u"The two password fields didn't match."])
def reset_confirm(request, key): """ Complete the password reset procedure. """ key = get_object_or_404(ConfirmationKey, key=key) if request.method == 'POST': form = SetPasswordForm(user=key.user, data=request.POST) if form.is_valid(): form.save() key.delete() messages.info(request, "Thank you! Your password has been reset. Please log in below.") return redirect('accounts:login') else: form = SetPasswordForm(user=key.user) return render(request, 'form.html', { 'title': 'Set Password', 'form': form, 'description': "Please enter a new password for your account.", 'action': 'Continue', })
def password_reset_confirm(request): template_name = 'usuarios/password_reset_confirm.html' context = {} reset = get_object_or_404(PasswordReset) form = SetPasswordForm(user=reset.user, data=request.POST or None) if form.is_valid(): form.save() context['success'] = True return redirect('usuarios:login') context['form'] = form return render(request, template_name, context)
def password_reset_confirm(request, key): template_name = "accounts/password_request_confirm.html" reset = get_object_or_404(PasswordReset, key=key) form = SetPasswordForm(user=reset.user, data=request.POST or None) context = {} if form.is_valid(): form.save() context["success"] = True context["form"] = form return render(request, template_name, context)
def registration_confirm(request, code, max_age=1800): try: email, user = decode(code, max_age=max_age) except InvalidCode as exc: messages.error(request, exc[0]) return redirect('/') if not user: if User.objects.filter(email=email).exists(): messages.error(request, 'Diese Email Adresse besteht bereits') return redirect('/') user = User( username=email if len(email) <= 30 else get_random_string(25), email=email) if request.method == 'POST': form = SetPasswordForm(user, request.POST) if form.is_valid(): user = form.save() password_set.send( sender=user.__class__, request=request, user=user, password=form.cleaned_data.get('new_password1'), ) messages.success( request, 'Dein Passwort wurde erfolgreich gesetzt.' 'Du kannst dich nun anmelden.') return redirect('login') else: messages.success(request, 'Bitte setze ein Passwort.') form = SetPasswordForm(user) return render(request, 'registration/password_set_form.html', { 'form': form, })