diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 142f0e97ac..9487de5e6a 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -391,9 +391,16 @@ REST_FRAMEWORK = { 'InvenTree.permissions.RolePermission', ), 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', - 'DEFAULT_METADATA_CLASS': 'InvenTree.metadata.InvenTreeMetadata' + 'DEFAULT_METADATA_CLASS': 'InvenTree.metadata.InvenTreeMetadata', + 'DEFAULT_RENDERER_CLASSES': [ + 'rest_framework.renderers.JSONRenderer', + ] } +if DEBUG: + # Enable browsable API if in DEBUG mode + REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'].append('rest_framework.renderers.BrowsableAPIRenderer') + WSGI_APPLICATION = 'InvenTree.wsgi.application' """ diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index 3d2c0d8a06..eb7364eca6 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -148,6 +148,37 @@ class PartCategoryAPITest(InvenTreeAPITestCase): # There should not be any templates left at this point self.assertEqual(PartCategoryParameterTemplate.objects.count(), 0) + def test_bleach(self): + """Test that the data cleaning functionality is working""" + + url = reverse('api-part-category-detail', kwargs={'pk': 1}) + + self.patch( + url, + { + 'description': '', + }, + expected_code=200 + ) + + cat = PartCategory.objects.get(pk=1) + + # Image tags have been stripped + self.assertEqual(cat.description, '<img src=# onerror=alert("pwned")>') + + self.patch( + url, + { + 'description': 'LINK', + }, + expected_code=200, + ) + + # Tags must have been bleached out + cat.refresh_from_db() + + self.assertEqual(cat.description, 'LINK<script>alert("h4x0r")</script>') + class PartOptionsAPITest(InvenTreeAPITestCase): """Tests for the various OPTIONS endpoints in the /part/ API. diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html index b9feb555f5..948c84bcac 100644 --- a/InvenTree/templates/InvenTree/settings/user.html +++ b/InvenTree/templates/InvenTree/settings/user.html @@ -154,7 +154,9 @@ {% else %} -

{% trans 'You currently have no social network accounts connected to this account.' %}

+
+ {% trans 'There are no social network accounts connected to this account.' %} +
{% endif %} @@ -198,9 +200,9 @@ {% else %} -

{% trans 'Warning:'%} - {% trans "You currently do not have any factors set up." %} -

+
+ {% trans "Multifactor authentication is not configured for your account" %} +
{% endif %} @@ -224,7 +226,7 @@
{% csrf_token %}
{% endif %} diff --git a/InvenTree/templates/InvenTree/settings/user_display.html b/InvenTree/templates/InvenTree/settings/user_display.html index bab90aadf9..1e0b4a1ca3 100644 --- a/InvenTree/templates/InvenTree/settings/user_display.html +++ b/InvenTree/templates/InvenTree/settings/user_display.html @@ -34,7 +34,7 @@ {% csrf_token %}