Merge "Fix TOTP view redirection"
This commit is contained in:
@@ -1490,6 +1490,10 @@ class OpenstackAuthTestsTOTP(test.TestCase):
|
|||||||
|
|
||||||
self.data = data_v3.generate_test_data()
|
self.data = data_v3.generate_test_data()
|
||||||
|
|
||||||
|
session = self.client.session
|
||||||
|
session['receipt'] = 'fake-receipt'
|
||||||
|
session.save()
|
||||||
|
|
||||||
def get_form_data(self, user):
|
def get_form_data(self, user):
|
||||||
return {'region': "default",
|
return {'region': "default",
|
||||||
'domain': DEFAULT_DOMAIN,
|
'domain': DEFAULT_DOMAIN,
|
||||||
|
@@ -504,7 +504,7 @@ class TotpView(edit_views.FormView):
|
|||||||
template_name = 'auth/totp.html'
|
template_name = 'auth/totp.html'
|
||||||
form_class = forms.TimeBasedOneTimePassword
|
form_class = forms.TimeBasedOneTimePassword
|
||||||
success_url = settings.LOGIN_REDIRECT_URL
|
success_url = settings.LOGIN_REDIRECT_URL
|
||||||
fail_url = "/login/"
|
fail_url = settings.LOGIN_URL
|
||||||
|
|
||||||
def get_initial(self):
|
def get_initial(self):
|
||||||
return {
|
return {
|
||||||
@@ -515,6 +515,14 @@ class TotpView(edit_views.FormView):
|
|||||||
'domain': self.request.session.get('domain'),
|
'domain': self.request.session.get('domain'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
if request.user.is_authenticated:
|
||||||
|
return django_http.HttpResponseRedirect(self.success_url)
|
||||||
|
receipt = request.session.get('receipt')
|
||||||
|
if not receipt:
|
||||||
|
return django_http.HttpResponseRedirect(self.fail_url)
|
||||||
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
auth.login(self.request, form.user_cache)
|
auth.login(self.request, form.user_cache)
|
||||||
res = django_http.HttpResponseRedirect(self.success_url)
|
res = django_http.HttpResponseRedirect(self.success_url)
|
||||||
|
Reference in New Issue
Block a user