예제 #1
0
def change_password(request, redirect_to='/help/'):
  info = messager(request, messages.INFO)
  redirect_to = request.GET.get('next', redirect_to)
  change_password_form = None
  if request.method == 'POST':
    change_password_form = ChangePasswordForm(request.POST)
    if change_password_form.is_valid():
      # change password.
      password = extract_cd(change_password_form, 'password')
      user = request.user
      user.set_password(password)
      user.get_profile().change_password_on_login = False
      user.save()
      user.get_profile().save()
      # DONE!
      action_factory.user_change_password(user)
      info("Password changed successfully.")
      return HttpResponseRedirect(redirect_to)
    else:
      # Change password failed (miserably).
      info(change_password_form.errors.values()[0][0])
      return login_screens_with_next(change_password, redirect_to)
  else:
    change_password_form = ChangePasswordForm()
  ctx = dict(change_password_form=change_password_form)
  return render_to_response('intro/intro_password.html',
    ctx,
    RequestContext(request))
예제 #2
0
def change():
    form = ChangePasswordForm()

    if form.validate_on_submit():
        current_user.set_password(form.new_pass.data)
        db.session.commit()
        flash('Password successfully changed.')
        return redirect(url_for('auth.change'))

    return render_template('auth/change.html', title='Change Password', form=form)
예제 #3
0
def changepw():
    form = ChangePasswordForm()
    if form.validate_on_submit():
        oldpw = form.old_password.data
        newpw = form.password.data
        if not current_user.verify_password(oldpw):
            flash("旧密码不正确", "danger")
        elif oldpw == newpw:
            flash("新密码和旧密码一致,修改无效", "warning")
        else:
            current_user.password = newpw
            flash("修改成功.", "success")
            return redirect(url_for('dashboard'))
    return render_template("changepw.html", form=form, user=current_user)
예제 #4
0
파일: auth.py 프로젝트: jeffder/legends
def change_password(request):
    if request.method == 'POST':
        form = ChangePasswordForm(user=request.user, data=request.POST)
        if request.is_ajax():
            if form.is_valid():
                form.save()
                data = {'changed': True}
            else:
                data = {
                    'changed': False,
                    'errors': dict([(k, [e for e in v])
                                    for k, v in form.errors.items()])
                }

            return JSONResponse(data)
예제 #5
0
def change_password_view(request, username):
    msg = ""
    if request.user.is_active:
        member = get_user(request)
        msg = "Your security code is " + str(member.security_code)
    error_msg = ""
    if not Member.objects.filter(username=username).exists():
        return redirect('/')

    if request.method == 'POST':
        security_code = int(request.POST['security_code'])
        password1 = request.POST['password1']
        password2 = request.POST['password2']
        member = Member.objects.get(username=username)
        if security_code == member.security_code:
            if password1 == password2:
                user = User.objects.get(username=username)
                user.set_password(password1)
                user.save()
                msg = "Your password has been changed."
            else:
                error_msg = "Passwords were not the same."
                form = ChangePasswordForm()
                return render(
                    request, "change_password.html", {
                        'form': form,
                        'error_msg': error_msg,
                        'member': member,
                        'msg': msg
                    })
        else:
            error_msg = "Invalid security code."
            form = ChangePasswordForm()
            return render(request, "change_password.html", {
                'form': form,
                'error_msg': error_msg,
                'member': member,
                'msg': msg
            })
        return render(request, "home.html", {'msg': msg})
    form = ChangePasswordForm()
    member = Member.objects.get(username=username)
    return render(request, "change_password.html", {
        'form': form,
        'error_msg': error_msg,
        'member': member,
        'msg': msg
    })
예제 #6
0
def account_password(request):
    user = request.user
    err_msg = ''
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            old_password = form.cleaned_data.get('old_password')
            if user.check_password(old_password):
                user.set_password(form.cleaned_data.get('new_password'))
                user.save()
                return render_to_response('account/password_ok.html', locals(), context_instance=RequestContext(request))
            else:
                err_msg = design.invalid_old_password
    else:
        form = ChangePasswordForm()

    return render_to_response('account/password.html', locals(), context_instance=RequestContext(request))
예제 #7
0
def password(request):
    user = request.user
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            new_password = form.cleaned_data.get('new_password')
            user.set_password(new_password)
            user.save()
            update_session_auth_hash(request, user)
            messages.add_message(request, messages.SUCCESS,
                                 'Your password was successfully changed.')
            return redirect('password')

    else:
        form = ChangePasswordForm(instance=user)

    return render(request, 'main/password.html', {'form': form})
예제 #8
0
def change_password():
    form = ChangePasswordForm()

    if form.validate_on_submit():
        new_pw = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')

        current_user.password = new_pw

        db.session.commit()

        flash(f'You have successfully changed your password.', 'success')

        return redirect(url_for('account'))

    return render_template('change-password.html',
                           title='Change Password',
                           form=form)
예제 #9
0
 def post(self, request):
     status = False
     form = ChangePasswordForm(request.POST)
     if form.is_valid():
         old_password = form.cleaned_data['old_password']
         new_password = form.cleaned_data['new_password']
         user = authenticate(request,
                             username=request.user.username,
                             password=old_password)
         if not user:
             messages.error(request, 'Текущий пароль введен неверно')
         else:
             user.set_password(new_password)
             user.save()
             login(request, user)
             messages.success(request, 'Пароль успешно изменен')
             status = True
     return form_response(request, form, status, 'account')
예제 #10
0
def personal(request):
    args = {}
    user = request.user

    userprofile = UserProfile.objects.get(user=request.user)
    if request.method == 'POST' and ('update_info' in request.POST):
        update_user_form = UpdateUserForm(request.POST, instance=user)
        update_userprofile_form = UpdateUserProfileForm(request.POST, request.FILES, instance=userprofile)
        if update_user_form.is_valid() and update_userprofile_form.is_valid():
            update_user_form.save()
            update_userprofile_form.save()
            return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
        else:
            update_user_form = UpdateUserForm(instance=user)
            update_userprofile_form = UpdateUserProfileForm(instance=userprofile)
    person_form = UpdateUserForm(instance=user)
    person_form_info = UpdateUserProfileForm(instance=userprofile)
    args['person'] = person_form
    args['person_info'] = person_form_info

    password_form = ChangePasswordForm(user=request.user)
    if request.method == 'POST' and ('change_password' in request.POST):
        password_form = ChangePasswordForm(user=request.user, data=request.POST)
        if password_form.is_valid():
            password_form.save()

            update_session_auth_hash(request, password_form.user)
    args['password_form'] = password_form
    if request.method == 'POST' and ('delete_profile' in request.POST):
        user = request.user
        user.delete()
        return redirect('index')
    if request.method == 'POST' and ('delete_photo' in request.POST):
        userprofile.photo.delete()
        return redirect('personal')
    if userprofile.photo:
        args['url'] = userprofile.photo.url
    else:
        args['url'] = ''
    return render(request, 'personal.html', args)
예제 #11
0
def recover_password(request):
    """
    Форма смены пароля
    """
    try:
        user = User.objects.get(recover_pass_key=request.GET.get('key'),
                                recover_pass_active=True)
    except User.DoesNotExist:
        return TemplateResponse(request, "main/change_password.html", {})

    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            user.set_password(form.get_password())
            user.recover_pass_deactivate()
            user.save()
            context = {'success': 1}
            return TemplateResponse(request, "main/change_password.html",
                                    context)
        else:
            context = {'form': form}
            return TemplateResponse(request, "main/change_password.html",
                                    context)
    else:
        form = ChangePasswordForm()
        context = {'form': form}
        return TemplateResponse(request, "main/change_password.html", context)
예제 #12
0
def account_password(request):
    user = request.user
    err_msg = ''
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            old_password = form.cleaned_data.get('old_password')
            if user.check_password(old_password):
                user.set_password(form.cleaned_data.get('new_password'))
                user.save()
                return render_to_response(
                    'account/password_ok.html',
                    locals(),
                    context_instance=RequestContext(request))
            else:
                err_msg = design.invalid_old_password
    else:
        form = ChangePasswordForm()

    return render_to_response('account/password.html',
                              locals(),
                              context_instance=RequestContext(request))