Exemple #1
0
def password_change(request, template_name='registration/password_change_form.html',
                    post_change_redirect=None, password_change_form=PasswordChangeForm):
    if post_change_redirect is None:
        post_change_redirect = reverse('auth_password_change_done')

    if is_ldap_user(request.user):
        messages.error(request, _("Can not update password, please contact LDAP admin."))

    if request.method == "POST":
        form = password_change_form(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()

            if request.session.get('force_passwd_change', False):
                del request.session['force_passwd_change']
                UserOptions.objects.unset_force_passwd_change(
                    request.user.username)

            update_session_auth_hash(request, request.user)
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = password_change_form(user=request.user)

    return render_to_response(template_name, {
        'form': form,
        'min_len': config.USER_PASSWORD_MIN_LENGTH,
        'strong_pwd_required': config.USER_STRONG_PASSWORD_REQUIRED,
        'level': config.USER_PASSWORD_STRENGTH_LEVEL,
        'force_passwd_change': request.session.get('force_passwd_change', False),
    }, context_instance=RequestContext(request))
Exemple #2
0
def password_change(request, template_name='registration/password_change_form.html',
                    post_change_redirect=None, password_change_form=PasswordChangeForm):
    if post_change_redirect is None:
        post_change_redirect = reverse('auth_password_change_done')

    if is_ldap_user(request.user):
        messages.error(request, _("Can not update password, please contact LDAP admin."))

    if request.method == "POST":
        form = password_change_form(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()

            if request.session.get('force_passwd_change', False):
                del request.session['force_passwd_change']
                UserOptions.objects.unset_force_passwd_change(
                    request.user.username)

            update_session_auth_hash(request, request.user)
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = password_change_form(user=request.user)

    return render_to_response(template_name, {
        'form': form,
        'min_len': config.USER_PASSWORD_MIN_LENGTH,
        'strong_pwd_required': config.USER_STRONG_PASSWORD_REQUIRED,
        'level': config.USER_PASSWORD_STRENGTH_LEVEL,
        'force_passwd_change': request.session.get('force_passwd_change', False),
    }, context_instance=RequestContext(request))
Exemple #3
0
def password_change(request,
                    template_name='registration/password_change_form.html',
                    post_change_redirect=None,
                    password_change_form=PasswordChangeForm):
    if post_change_redirect is None:
        post_change_redirect = reverse('auth_password_change_done')

    if is_ldap_user(request.user):
        messages.error(
            request, _("Can not update password, please contact LDAP admin."))

    if settings.ENABLE_USER_SET_CONTACT_EMAIL:
        user_profile = Profile.objects.get_profile_by_user(
            request.user.username)
        if user_profile is None or not user_profile.contact_email:
            # set contact email and password
            password_change_form = SetContactEmailPasswordForm
            template_name = 'registration/password_set_form.html'

        elif request.user.enc_password == UNUSABLE_PASSWORD:
            # set password only
            password_change_form = SetPasswordForm
            template_name = 'registration/password_set_form.html'

    if request.method == "POST":
        form = password_change_form(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()

            if request.session.get('force_passwd_change', False):
                del request.session['force_passwd_change']
                UserOptions.objects.unset_force_passwd_change(
                    request.user.username)

            update_session_auth_hash(request, request.user)
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = password_change_form(user=request.user)

    return render(
        request, template_name, {
            'form':
            form,
            'min_len':
            config.USER_PASSWORD_MIN_LENGTH,
            'strong_pwd_required':
            config.USER_STRONG_PASSWORD_REQUIRED,
            'level':
            config.USER_PASSWORD_STRENGTH_LEVEL,
            'force_passwd_change':
            request.session.get('force_passwd_change', False),
        })