示例#1
0
文件: views.py 项目: Kromey/akwriters
    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
示例#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))
示例#3
0
文件: views.py 项目: tinchou/fiubar
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),
    )
示例#4
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")
示例#5
0
文件: views.py 项目: 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})
示例#6
0
    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)
示例#7
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})
示例#8
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})
示例#9
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)
示例#10
0
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
        })
示例#11
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)
示例#12
0
    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)
示例#13
0
 def get(self, request):
     form = PasswordChangeForm()
     return render(request, 'password_change/password_reset_form.html',
                   {'form': form})
示例#14
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())