don't associate user if PhantomJS response is erroneous (#14813)
This commit is contained in:
parent
8d483be9e0
commit
9d1f6af57c
|
@ -44,8 +44,8 @@ def exec_phantom(data, script='do_login.js'):
|
|||
try:
|
||||
result = json.loads(stdout)
|
||||
except (ValueError,):
|
||||
result = {"result": "failure, couldn't decode JSON"}
|
||||
logger.error(stdout)
|
||||
result = {"result": "json_error"}
|
||||
logger.error("invalid json: %s" % stdout)
|
||||
|
||||
if result.get('stderr'):
|
||||
logger.warning(result['stderr'])
|
||||
|
|
|
@ -159,6 +159,9 @@ def post_login_do(request, *args, **kwargs):
|
|||
elif result.get('result') == 'timeout':
|
||||
messages.error(request, _('server took too long to respond'))
|
||||
url = resolve_url('associate')
|
||||
elif result.get('result') == 'json_error':
|
||||
messages.error(request, _('invalid response from server'))
|
||||
url = resolve_url('associate')
|
||||
elif result.get('result') == 'redirect':
|
||||
url = urlparse(result.get('url', '/'))
|
||||
url = url.path
|
||||
|
|
|
@ -255,7 +255,7 @@ def test_phantom_invalid_json(mocked_popen, caplog):
|
|||
assert record.levelname == 'ERROR'
|
||||
assert record.message == 'This is not a valid JSON'
|
||||
|
||||
assert result['result'] == "failure, couldn't decode JSON"
|
||||
assert result['result'] == "json_error"
|
||||
|
||||
|
||||
@mock.patch('mandayejs.mandaye.utils.subprocess.Popen')
|
||||
|
|
Reference in New Issue