Example #1
0
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),
    )
Example #2
0
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))
Example #3
0
    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
Example #4
0
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})
Example #5
0
    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())
Example #6
0
    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")
Example #7
0
File: views.py Project: QRAAT/QRAAT
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})
Example #8
0
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)
Example #9
0
    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})
Example #10
0
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)