redirect to right domain name when password update required (#14816)
This commit is contained in:
parent
ecb03255f8
commit
2d3498730c
|
@ -17,6 +17,7 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
from urlparse import urlparse
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
@ -159,7 +160,8 @@ def post_login_do(request, *args, **kwargs):
|
|||
messages.error(request, _('server took too long to respond'))
|
||||
url = resolve_url('associate')
|
||||
elif result.get('result') == 'redirect':
|
||||
url = result.get('url', '/')
|
||||
url = urlparse(result.get('url', '/'))
|
||||
url = url.path
|
||||
else:
|
||||
credentials.linked = True
|
||||
credentials.save()
|
||||
|
|
|
@ -9,10 +9,13 @@ from django.conf import settings
|
|||
from django.core.management import call_command
|
||||
from django.http.request import HttpRequest, QueryDict
|
||||
from django.forms.fields import DateField
|
||||
from django.test.client import RequestFactory
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from mandayejs.mandaye.models import UserCredentials
|
||||
from mandayejs.mandaye.utils import exec_phantom
|
||||
from mandayejs.mandaye.forms import FormFactory
|
||||
from mandayejs.mandaye.views import post_login_do
|
||||
|
||||
from utils import create_user, create_credentials, get_uuid, get_user
|
||||
|
||||
|
@ -315,3 +318,25 @@ def test_credentials_json_encoding(user_john):
|
|||
|
||||
assert cred.locators['login'] == 'johnny'
|
||||
assert cred.locators['birth_date'] == '1995-06-11'
|
||||
|
||||
|
||||
@mock.patch('mandayejs.mandaye.utils.subprocess.Popen')
|
||||
@mock.patch('mandayejs.applications.Test.SITE_LOCATORS', MOCKED_SITE_LOCATORS)
|
||||
def test_post_login_do(mocked_popen, user_john):
|
||||
expected_output = {
|
||||
"result": "redirect",
|
||||
"reason": "password change required",
|
||||
"url": "http://mydomain.com/update_password.aspx"
|
||||
}
|
||||
mocked_popen.return_value = MockedPopen(expected_output=(json.dumps(expected_output), None))
|
||||
|
||||
UserCredentials.objects.create(user=user_john,
|
||||
locators={
|
||||
'login': 'johnny', 'password': 'jumper',
|
||||
'birth_date': '1995-06-11'})
|
||||
|
||||
request = RequestFactory()
|
||||
request = request.get(reverse('post-login-do'))
|
||||
request.user = user_john
|
||||
response = post_login_do(request)
|
||||
'window.top.location = "/update_password.aspx"' in response.content
|
||||
|
|
Reference in New Issue