From 175d701247c6e6e1100c4ad560e257d17cf68ea1 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Wed, 11 Dec 2019 11:05:34 +0100 Subject: [PATCH] Fix #982: Removed "nodeinfo disabled" setting, as nodeinfo is required for the UI to work --- api/funkwhale_api/federation/views.py | 2 -- .../instance/dynamic_preferences_registry.py | 15 --------------- api/funkwhale_api/instance/views.py | 3 --- api/tests/federation/test_views.py | 7 ------- api/tests/instance/test_views.py | 8 -------- changes/changelog.d/982.bugfix | 1 + front/src/views/admin/Settings.vue | 1 - 7 files changed, 1 insertion(+), 36 deletions(-) create mode 100644 changes/changelog.d/982.bugfix diff --git a/api/funkwhale_api/federation/views.py b/api/funkwhale_api/federation/views.py index 35043e8ed5..f0ac6687db 100644 --- a/api/funkwhale_api/federation/views.py +++ b/api/funkwhale_api/federation/views.py @@ -143,8 +143,6 @@ class WellKnownViewSet(viewsets.GenericViewSet): @action(methods=["get"], detail=False) def nodeinfo(self, request, *args, **kwargs): - if not preferences.get("instance__nodeinfo_enabled"): - return HttpResponse(status=404) data = { "links": [ { diff --git a/api/funkwhale_api/instance/dynamic_preferences_registry.py b/api/funkwhale_api/instance/dynamic_preferences_registry.py index be360701dd..66d8211c15 100644 --- a/api/funkwhale_api/instance/dynamic_preferences_registry.py +++ b/api/funkwhale_api/instance/dynamic_preferences_registry.py @@ -127,21 +127,6 @@ class RavenDSN(types.StringPreference): field_kwargs = {"required": False} -@global_preferences_registry.register -class InstanceNodeinfoEnabled(types.BooleanPreference): - show_in_api = False - section = instance - name = "nodeinfo_enabled" - default = True - verbose_name = "Enable nodeinfo endpoint" - help_text = ( - "This endpoint is needed for your about page to work. " - "It's also helpful for the various monitoring " - "tools that map and analyzize the fediverse, " - "but you can disable it completely if needed." - ) - - @global_preferences_registry.register class InstanceNodeinfoPrivate(types.BooleanPreference): show_in_api = False diff --git a/api/funkwhale_api/instance/views.py b/api/funkwhale_api/instance/views.py index 1800c3dbc7..29a947cb16 100644 --- a/api/funkwhale_api/instance/views.py +++ b/api/funkwhale_api/instance/views.py @@ -4,7 +4,6 @@ from dynamic_preferences.registries import global_preferences_registry from rest_framework import views from rest_framework.response import Response -from funkwhale_api.common import preferences from funkwhale_api.users.oauth import permissions as oauth_permissions from . import nodeinfo @@ -38,7 +37,5 @@ class NodeInfo(views.APIView): authentication_classes = [] def get(self, request, *args, **kwargs): - if not preferences.get("instance__nodeinfo_enabled"): - return Response(status=404) data = nodeinfo.get() return Response(data, status=200, content_type=NODEINFO_2_CONTENT_TYPE) diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py index a47fdd198d..4428ae925a 100644 --- a/api/tests/federation/test_views.py +++ b/api/tests/federation/test_views.py @@ -48,13 +48,6 @@ def test_wellknown_nodeinfo(db, preferences, api_client, settings): assert response.data == expected -def test_wellknown_nodeinfo_disabled(db, preferences, api_client): - preferences["instance__nodeinfo_enabled"] = False - url = reverse("federation:well-known-nodeinfo") - response = api_client.get(url) - assert response.status_code == 404 - - def test_local_actor_detail(factories, api_client): user = factories["users.User"](with_actor=True) url = reverse( diff --git a/api/tests/instance/test_views.py b/api/tests/instance/test_views.py index 0b3b7b79ad..08c4480530 100644 --- a/api/tests/instance/test_views.py +++ b/api/tests/instance/test_views.py @@ -12,14 +12,6 @@ def test_nodeinfo_endpoint(db, api_client, mocker): assert response.data == payload -def test_nodeinfo_endpoint_disabled(db, api_client, preferences): - preferences["instance__nodeinfo_enabled"] = False - url = reverse("api:v1:instance:nodeinfo-2.0") - response = api_client.get(url) - - assert response.status_code == 404 - - def test_settings_only_list_public_settings(db, api_client, preferences): url = reverse("api:v1:instance:settings") response = api_client.get(url) diff --git a/changes/changelog.d/982.bugfix b/changes/changelog.d/982.bugfix new file mode 100644 index 0000000000..1e0252c3f1 --- /dev/null +++ b/changes/changelog.d/982.bugfix @@ -0,0 +1 @@ +Removed "nodeinfo disabled" setting, as nodeinfo is required for the UI to work (#982) diff --git a/front/src/views/admin/Settings.vue b/front/src/views/admin/Settings.vue index eeba965ad7..e9072d5119 100644 --- a/front/src/views/admin/Settings.vue +++ b/front/src/views/admin/Settings.vue @@ -159,7 +159,6 @@ export default { label: statisticsLabel, id: "statistics", settings: [ - "instance__nodeinfo_enabled", "instance__nodeinfo_stats_enabled", "instance__nodeinfo_private" ] -- GitLab