Convert to utf-8 before JSON decoding

This commit is contained in:
Dave St.Germain
2019-08-19 15:10:56 -04:00
parent 5ba4152cb6
commit 9d8db8e4ca
7 changed files with 7 additions and 7 deletions

View File

@@ -538,7 +538,7 @@ def _update_asset(request, course_key, asset_key):
# update existing asset
try:
modified_asset = json.loads(request.body)
modified_asset = json.loads(request.body.decode('utf8'))
except ValueError:
return HttpResponseBadRequest()
contentstore().set_attr(asset_key, 'locked', modified_asset['locked'])

View File

@@ -349,7 +349,7 @@ def certificate_activation_handler(request, course_key_string):
msg = _(u'PermissionDenied: Failed in authenticating {user}').format(user=request.user)
return JsonResponse({"error": msg}, status=403)
data = json.loads(request.body)
data = json.loads(request.body.decode('utf8'))
is_active = data.get('is_active', False)
certificates = CertificateManager.get_certificates(course)

View File

@@ -46,7 +46,7 @@ def expect_json(view_function):
# e.g. 'charset', so we can't do a direct string compare
if "application/json" in request.META.get('CONTENT_TYPE', '') and request.body:
try:
request.json = json.loads(request.body)
request.json = json.loads(request.body.decode('utf8'))
except ValueError:
return JsonResponseBadRequest({"error": "Invalid JSON"})
else:

View File

@@ -313,7 +313,7 @@ def save_ccx(request, course, ccx=None):
return earliest, ccx_ids_to_delete
graded = {}
earliest, ccx_ids_to_delete = override_fields(course, json.loads(request.body), graded, [])
earliest, ccx_ids_to_delete = override_fields(course, json.loads(request.body.decode('utf8')), graded, [])
bulk_delete_ccx_override_fields(ccx, ccx_ids_to_delete)
if earliest:
override_field_for_ccx(ccx, course, 'start', earliest)

View File

@@ -1633,7 +1633,7 @@ def financial_assistance(_request):
def financial_assistance_request(request):
"""Submit a request for financial assistance to Zendesk."""
try:
data = json.loads(request.body)
data = json.loads(request.body.decode('utf8'))
# Simple sanity check that the session belongs to the user
# submitting an FA request
username = data['username']

View File

@@ -205,7 +205,7 @@ def edxnotes_visibility(request, course_id):
raise Http404
try:
visibility = json.loads(request.body)["visibility"]
visibility = json.loads(request.body.decode('utf8'))["visibility"]
course_module.edxnotes_visibility = visibility
course_module.save()
return JsonResponse(status=200)

View File

@@ -22,7 +22,7 @@ def update_session_language(request):
"""
response = HttpResponse(200)
if request.method == 'PATCH':
data = json.loads(request.body)
data = json.loads(request.body.decode('utf8'))
language = data.get(LANGUAGE_KEY, settings.LANGUAGE_CODE)
if request.session.get(LANGUAGE_SESSION_KEY, None) != language:
request.session[LANGUAGE_SESSION_KEY] = six.text_type(language)