44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
from django.contrib.auth import authenticate
|
|
from django.contrib.auth.forms import SetPasswordForm
|
|
from django.shortcuts import render
|
|
from django.contrib import messages
|
|
from django.utils.translation import ugettext as _
|
|
|
|
from auf.django.secretquestions.decorators import secret_questions_required
|
|
from auf.django.secretquestions.views import setup_form
|
|
|
|
|
|
from authentic2.utils import login, continue_to_next_url
|
|
from authentic2.decorators import setting_enabled
|
|
|
|
|
|
from . import app_settings
|
|
|
|
__ALL__ = [ 'lost_password_login', 'secret_questions' ]
|
|
|
|
@setting_enabled('ENABLE', settings=app_settings)
|
|
@secret_questions_required(60)
|
|
def lost_password_login(request):
|
|
user = authenticate(user=request.secret_questions_user)
|
|
return login(request, user, 'secret-questions')
|
|
|
|
@setting_enabled('ENABLE', settings=app_settings)
|
|
@secret_questions_required(6000)
|
|
def lost_password_reset(request):
|
|
user = authenticate(user=request.secret_questions_user)
|
|
if request.method == 'POST':
|
|
if 'cancel' in request.POST:
|
|
return continue_to_next_url(request, keep_params=False)
|
|
form = SetPasswordForm(data=request.POST,
|
|
user=user)
|
|
if form.is_valid():
|
|
form.save()
|
|
messages.info(request, _('Your password has been reset, please login'))
|
|
return continue_to_next_url(request, keep_params=False)
|
|
else:
|
|
form = SetPasswordForm(user=user)
|
|
return render(request, 'authentic2_auf/reset_password.html', {'form': form})
|
|
|
|
|
|
secret_questions = setup_form
|