From 1aa74dd16b296f310fec13d455b73dbb864e360d Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Fri, 22 Nov 2024 10:21:34 +0100
Subject: [PATCH 1/2] fix: disable api for activity, scheduled activity,
 follower

---
 djangoldp/__init__.py |  2 +-
 djangoldp/models.py   |  7 +++++++
 djangoldp/urls.py     | 16 +++++++++-------
 3 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/djangoldp/__init__.py b/djangoldp/__init__.py
index 9d420347..28986e6b 100644
--- a/djangoldp/__init__.py
+++ b/djangoldp/__init__.py
@@ -5,4 +5,4 @@ __version__ = '0.0.0'
 options.DEFAULT_NAMES += (
     'lookup_field', 'rdf_type', 'rdf_context', 'auto_author', 'owner_field', 'owner_urlid_field',
     'view_set', 'container_path', 'permission_classes', 'serializer_fields', 'serializer_fields_exclude', 'empty_containers',
-    'nested_fields', 'depth', 'permission_roles', 'inherit_permissions', 'public_field', 'static_version', 'static_params', 'active_field')
+    'nested_fields', 'depth', 'permission_roles', 'inherit_permissions', 'public_field', 'static_version', 'static_params', 'active_field', 'disable_url')
diff --git a/djangoldp/models.py b/djangoldp/models.py
index a3df16ca..53136d4c 100644
--- a/djangoldp/models.py
+++ b/djangoldp/models.py
@@ -267,6 +267,7 @@ class Activity(Model):
     class Meta(Model.Meta):
         container_path = "activities"
         rdf_type = 'as:Activity'
+        disable_url = True
 
     def to_activitystream(self):
         return json.loads(self.payload)
@@ -284,6 +285,9 @@ class ScheduledActivity(Activity):
         self.is_finished = False
         super(ScheduledActivity, self).save(*args, **kwargs)
 
+    class Meta(Model.Meta):
+        disable_url = True
+
 
 class Follower(Model):
     '''Models a subscription on a model. When the model is saved, an Update activity will be sent to the inbox'''
@@ -294,6 +298,9 @@ class Follower(Model):
     def __str__(self):
         return 'Inbox ' + str(self.inbox) + ' on ' + str(self.object)
 
+    class Meta(Model.Meta):
+        disable_url = True
+
 class DynamicNestedField:
     '''
     Used to define a method as a nested_field.
diff --git a/djangoldp/urls.py b/djangoldp/urls.py
index defa166b..a57ed80c 100644
--- a/djangoldp/urls.py
+++ b/djangoldp/urls.py
@@ -69,13 +69,15 @@ for model in get_all_non_abstract_subclasses(Model):
     model_path = __clean_path(model.get_container_path())
     # urls_fct will be a method which generates urls for a ViewSet (defined in LDPViewSetGenerator)
     urls_fct = getattr(model, 'view_set', LDPViewSet).urls
-    urlpatterns.append(path('' + model_path,
-        urls_fct(model=model,
-                 lookup_field=getattr(model._meta, 'lookup_field', 'pk'),
-                 permission_classes=getattr(model._meta, 'permission_classes', []),
-                 fields=getattr(model._meta, 'serializer_fields', []),
-                 nested_fields=getattr(model._meta, 'nested_fields', [])
-                 )))
+    disable_url = getattr(model._meta, 'disable_url', False)
+    if not disable_url:
+        urlpatterns.append(path('' + model_path,
+            urls_fct(model=model,
+                    lookup_field=getattr(model._meta, 'lookup_field', 'pk'),
+                    permission_classes=getattr(model._meta, 'permission_classes', []),
+                    fields=getattr(model._meta, 'serializer_fields', []),
+                    nested_fields=getattr(model._meta, 'nested_fields', [])
+                    )))
 
 # NOTE: this route will be ignored if a custom (subclass of Model) user model is used, or it is registered by a package
 # Django matches the first url it finds for a given path
-- 
GitLab


From 65c1e61cdafc794071dc7abea9f26e41a02d8d21 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Fri, 22 Nov 2024 10:21:47 +0100
Subject: [PATCH 2/2] fix: avoid rendering inbox drf api helper

---
 djangoldp/views.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/djangoldp/views.py b/djangoldp/views.py
index fe7d2041..272ea307 100644
--- a/djangoldp/views.py
+++ b/djangoldp/views.py
@@ -86,6 +86,7 @@ class InboxView(APIView):
     Receive linked data notifications
     """
     permission_classes = [AllowAny, ]
+    renderer_classes = [JSONLDRenderer]
 
     def post(self, request, *args, **kwargs):
         '''
-- 
GitLab