Store requesting user on the request when successfull
Use is stored in request.secret_questions_user
This commit is contained in:
parent
e069d36ab7
commit
c9b2e9bf36
|
@ -7,6 +7,12 @@ from django.shortcuts import redirect
|
|||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib import messages
|
||||
try:
|
||||
from django.contrib.auth import get_user_model
|
||||
except ImportError:
|
||||
from django.contrib.auth.models import User
|
||||
def get_user_model():
|
||||
return User
|
||||
|
||||
from .views import SecretQuestionWizard
|
||||
from .conf import SQ_SESSION_KEY, SQ_TOKEN_TTL
|
||||
|
@ -17,10 +23,11 @@ def secret_questions_required(ttl=SQ_TOKEN_TTL):
|
|||
def _inner(view):
|
||||
|
||||
def _wrapped(request, *args, **kwargs):
|
||||
session_token, url, date = request.session.get(SQ_SESSION_KEY,
|
||||
session_token, url, date, user_pk = request.session.get(SQ_SESSION_KEY,
|
||||
(None,
|
||||
None,
|
||||
datetime.now(),))
|
||||
datetime.now(),
|
||||
None))
|
||||
get_token = request.GET.get(SQ_SESSION_KEY, None)
|
||||
date_max = date + timedelta(seconds=ttl)
|
||||
|
||||
|
@ -40,6 +47,7 @@ def secret_questions_required(ttl=SQ_TOKEN_TTL):
|
|||
return redirect(clean_url)
|
||||
|
||||
if session_token == get_token:
|
||||
request.secret_questions_user = get_user_model().objects.get(pk=user_pk)
|
||||
return view(request, *args, **kwargs)
|
||||
|
||||
# should not be raised
|
||||
|
|
|
@ -90,7 +90,7 @@ class SecretQuestionWizard(FormWizard):
|
|||
params[SQ_SESSION_KEY] = token
|
||||
qs = urlencode(params)
|
||||
url = "%s?%s" % (path, qs)
|
||||
request.session[SQ_SESSION_KEY] = (token, path, datetime.now())
|
||||
request.session[SQ_SESSION_KEY] = (token, path, datetime.now(), self.user.pk)
|
||||
|
||||
return redirect(url)
|
||||
|
||||
|
|
Reference in New Issue