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()
|
||||
|
||||
session = self.client.session
|
||||
session['receipt'] = 'fake-receipt'
|
||||
session.save()
|
||||
|
||||
def get_form_data(self, user):
|
||||
return {'region': "default",
|
||||
'domain': DEFAULT_DOMAIN,
|
||||
|
@@ -504,7 +504,7 @@ class TotpView(edit_views.FormView):
|
||||
template_name = 'auth/totp.html'
|
||||
form_class = forms.TimeBasedOneTimePassword
|
||||
success_url = settings.LOGIN_REDIRECT_URL
|
||||
fail_url = "/login/"
|
||||
fail_url = settings.LOGIN_URL
|
||||
|
||||
def get_initial(self):
|
||||
return {
|
||||
@@ -515,6 +515,14 @@ class TotpView(edit_views.FormView):
|
||||
'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):
|
||||
auth.login(self.request, form.user_cache)
|
||||
res = django_http.HttpResponseRedirect(self.success_url)
|
||||
|
Reference in New Issue
Block a user