Implémente les vues avec questions secrètes de login et réinitialisation
This commit is contained in:
parent
29d518b0ec
commit
60646298b2
|
@ -9,7 +9,7 @@ class Plugin(object):
|
|||
return []
|
||||
|
||||
def get_apps(self):
|
||||
return [__name__]
|
||||
return [__name__, 'auf.django.secretquestions']
|
||||
|
||||
def get_before_middleware(self):
|
||||
return []
|
||||
|
|
|
@ -3,14 +3,17 @@ from django.conf.urls import patterns, url
|
|||
from authentic2.decorators import setting_enabled, required
|
||||
|
||||
from . import app_settings
|
||||
from .views import lost_password_login, secret_questions
|
||||
from .views import lost_password_login, secret_questions, lost_password_reset
|
||||
|
||||
urlpatterns = required(
|
||||
setting_enabled('ENABLE', settings=app_settings),
|
||||
patterns('',
|
||||
url('^accounts/auf/lost-password/$', lost_password_login,
|
||||
name='authentic2-auf-lost-password'),
|
||||
url('^accounts/auf/lost-password-login/$', lost_password_login,
|
||||
name='authentic2-auf-lost-password-login'),
|
||||
url('^accounts/auf/secret-questions/$', secret_questions,
|
||||
name='authentic2-auf-secret-questions'),
|
||||
# remplace la vue Django de recuperation
|
||||
url('^accounts/password/reset/$', lost_password_reset,
|
||||
name='auth_password_reset'),
|
||||
)
|
||||
)
|
||||
|
|
|
@ -1,16 +1,43 @@
|
|||
from django.shortcuts import render
|
||||
from auth.django.secretquestions.decorators import secret_questions_required
|
||||
from auth.django.secretquestions.views import secret_questions
|
||||
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 authentic2.utils import login
|
||||
from . import decorators
|
||||
from auf.django.secretquestions.decorators import secret_questions_required
|
||||
from auf.django.secretquestions.views import setup_form
|
||||
|
||||
__ALL_ = [ 'sso' ]
|
||||
|
||||
@decorators.plugin_enabled
|
||||
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.user)
|
||||
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
|
||||
|
|
Reference in New Issue