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 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 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 get(self, request, token=None): if token is None: self.context['form'] = PasswordChangeRequestForm() else: self.context['form'] = PasswordChangeForm() return render(request, self.template_name, self.context)
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 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)
def profile(request, user_id=None): user = get_object_or_404(User, pk=user_id) all_lessons = user.lessons.all() lesson_paginator = Paginator(all_lessons, 16) lesson_page = request.GET.get('page') try: lessons = lesson_paginator.page(lesson_page) except PageNotAnInteger: # If page is not an integer, deliver first page. lessons = lesson_paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. lessons = lesson_paginator.page(lesson_paginator.num_pages) if request.user.is_authenticated() and user_id in [ None, str(request.user.id) ]: profile = request.user.get_profile() if request.method == "POST": form = ProfileForm(request.POST, profile=profile) if form.is_valid(): profile = form.save() form = ProfileForm(profile=profile) else: form = ProfileForm(profile=profile) cpass_form = PasswordChangeForm(request.user) return direct_to_template(request, "profile.html", { "lessons": lessons, "u": user, "form": form, "cpass_form": cpass_form }) elif request.user.is_anonymous() and user_id is None: return HttpResponseRedirect(reverse("account:auth_login")) else: user = get_object_or_404(User, pk=user_id, profile__professional_chef=True) return direct_to_template(request, "chef_profile.html", { "lessons": lessons, "u": user })
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, token=None): if token is None: form = PasswordChangeRequestForm(request.POST) if form.is_valid(): user = get_object_or_404(User, email=form.cleaned_data['email']) obj, ret = PasswordChangeRequestModel.objects.get_or_create( user=user) messages.success( request, "Successfully created a password change request") obj.send_change_mail() return redirect("account:index") else: self.contex['form'] = form else: form = PasswordChangeForm(request.POST) if form.is_valid(): request_form = get_object_or_404(PasswordChangeRequestModel, token=token) request_form.user.set_password(form.cleaned_data['password']) request_form.user.save() messages.success(request, "Succesfully changed your password") request_form.delete() return redirect("account:index") else: self.context['form'] = form return render(request, self.template_name, self.context)
def get(self, request): form = PasswordChangeForm() return render(request, 'password_change/password_reset_form.html', {'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())