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