def password_change(request, pwdreset_key): user = PasswordReset.objects.is_valid(pwdreset_key) if not user: logger.error( "%s - account-pwdchange: key '%s', error: '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, "Key not found") ) return render_to_response("account/password_change_form.html", context_instance=RequestContext(request)) if request.method == "POST": form = PasswordChangeForm(request.POST) if form.is_valid(): user.set_password(form.cleaned_data["new_password1"]) user.save() PasswordReset.objects.expire_key(pwdreset_key) logger.info( "%s - account-pwdchange: key '%s', user '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, user.username) ) return render_to_response("account/password_change_done.html", context_instance=RequestContext(request)) else: logger.error( "%s - account-pwdchange: key '%s', user '%s', error: '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, user.username, "Password not valid") ) else: form = PasswordChangeForm() return render_to_response( "account/password_change_form.html", {"form": form, "user_cache": user}, context_instance=RequestContext(request), )
def password_change(request, pwdreset_key): user = PasswordReset.objects.is_valid(pwdreset_key) if not user: logger.error( "%s - account-pwdchange: key '%s', error: '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, 'Key not found')) return render_to_response('account/password_change_form.html', context_instance=RequestContext(request)) if request.method == 'POST': form = PasswordChangeForm(request.POST) if form.is_valid(): user.set_password(form.cleaned_data['new_password1']) user.save() PasswordReset.objects.expire_key(pwdreset_key) logger.info( "%s - account-pwdchange: key '%s', user '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, user.username)) return render_to_response('account/password_change_done.html', context_instance=RequestContext(request)) else: logger.error( "%s - account-pwdchange: key '%s', user '%s', error: '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, user.username, 'Password not valid')) else: form = PasswordChangeForm() return render_to_response('account/password_change_form.html', { 'form': form, 'user_cache': user }, context_instance=RequestContext(request))
def _change_password(self, request): form = PasswordChangeForm(request.POST) # Validate the form, remembering to supply the user's username if form.is_valid(request.user.username): # Verify that it is this user's password account_store = Prosody.accounts.filter(user=request.user.username) account_data = dict() for item in account_store: account_data[item.key] = item.value # "Fix" the key that doesn't match our kwargs later account_data['iterations'] = account_data['iteration_count'] del account_data['iteration_count'] if authenticate.verify_password(password=form.cleaned_data['old_password'], **account_data): # Everything checks out, change the user's password user = request.user # A new salt will be generated and the password hashed user.password = form.cleaned_data['new_password'] user.save() messages.success(request, 'Your password has been changed.') else: messages.error(request, 'You did not enter your correct password.') self._pass_form = form
def account(request): user = request.user if request.method == 'POST': form = PasswordChangeForm(user=request.user, data=request.POST) if form.is_valid(): if not form.cleaned_data['old_password']: return render(request, 'setting/account.html', {'password_from': PasswordChangeForm(), 'alert_message': 'Wrong Password'}) password = form.cleaned_data['new_password2'] if password: user.set_password(password) user.save() return render(request, 'setting/account.html', {'password_form': PasswordChangeForm(), 'alert_message': 'Password updated successfully'}) else: form = PasswordChangeForm() return render(request, 'setting/account.html', {'password_form': form})
def test_password_invalid(self): data = {"new_password1": ""} form = PasswordChangeForm(data) self.assertFalse(form.is_valid()) data = {"new_password1": "abc"} form = PasswordChangeForm(data) self.assertFalse(form.is_valid()) data = {"new_password1": "abc", "new_password2": "abcd"} form = PasswordChangeForm(data) self.assertFalse(form.is_valid()) data = {"new_password1": "abc", "new_password2": "abc"} form = PasswordChangeForm(data) self.assertTrue(form.is_valid())
def post(self, request): form = PasswordChangeForm(request.POST) if not form.is_valid(): message = first_error_message(form) raise BadRequestException(message) new_password1 = form.cleaned_data.get("new_password1") bk_token = request.COOKIES.get(settings.BK_COOKIE_NAME, None) data = {'new_password': new_password1} ok, message = change_password(bk_token, data) if not ok: return FailJsonResponse(message or "密码重置失败") return OKJsonResponse("success")
def change_password(request): """This view is the entry for users to change their password""" user = request.user form = PasswordChangeForm(instance=user) if request.method == 'POST': form = PasswordChangeForm(request.POST, instance=user) if form.is_valid(): form.save() return render( request, 'account/change-password.html', {'form': form, 'changed': True}) return render(request, 'account/change-password.html', {'form': form})
def change_password(request): context = {} if request.method == 'POST': form = PasswordChangeForm(request.POST, user=request.user) if form.is_valid(): user = form.save() logout(request) login(request, user) return redirect('/account/') else: form = PasswordChangeForm(user=request.user) context['form'] = form return render(request, 'account/password/change.html', context)
def post(self, request): form = PasswordChangeForm(request.POST) if form.is_valid(): user = request.user current_site = get_current_site(request) subject = 'Activate Your Phytochem Database Account' message = render_to_string('email_verification/email_verification.html', { 'account': user, 'domain': current_site.domain, 'uid': urlsafe_base64_encode(force_bytes(user.pk)), 'token': account_activation_token.make_token(user), }) if user.email_user(subject, message) == 1: return render(request, 'password_change/password_reset_done.html') else: messages.warning(request, 'Failed to confirm email') return render(request, 'password_change/password_reset_form.html', {'form': form})
def change_password(request): context = {} if request.method == 'POST': form = PasswordChangeForm(request.POST, user=request.user) if form.is_valid(): new_password = form.cleaned_data['confirm_password'] user = request.user user.set_password(new_password) user.save() logout(request) login(request, user) return redirect('/account/') form = PasswordChangeForm(user=request.user) context['form'] = form return render(request, 'account/password/change.html', context)