fix: author for deletion and ignore activities related models

This commit is contained in:
Jean-Baptiste Pasquier 2021-02-11 14:07:12 +01:00
parent eb06f2c38c
commit 87e5d8688f
2 changed files with 41 additions and 35 deletions

View File

@ -12,6 +12,7 @@ class CurrentUserMiddleware:
self.process_request(request)
response = self.get_response(request)
signals.pre_save.disconnect(dispatch_uid=request)
signals.pre_delete.disconnect(dispatch_uid=request)
return response
def process_request(self, request):
@ -26,6 +27,8 @@ class CurrentUserMiddleware:
user = None
def _update_users(sender, instance, **kwargs):
if(type(instance).__name__ != "ScheduledActivity" and type(instance).__name__ != "LogEntry" and type(instance).__name__ != "Activity"):
setattr(instance, MODEL_MODIFICATION_USER_FIELD, user)
signals.pre_save.connect(_update_users, dispatch_uid=request, weak=False)
signals.pre_delete.connect(_update_users, dispatch_uid=request, weak=False)

View File

@ -132,6 +132,7 @@ def create_nested_subscribers(sender, instance, created, **kwargs):
@receiver(post_save, dispatch_uid="callback_notif")
@receiver(post_delete, dispatch_uid="delete_callback_notif")
def send_notification(sender, instance, **kwargs):
if(type(instance).__name__ != "ScheduledActivity" and type(instance).__name__ != "LogEntry" and type(instance).__name__ != "Activity"):
if sender != Notification:
# don't send notifications for foreign resources
if hasattr(instance, 'urlid') and Model.is_external(instance.urlid):
@ -165,7 +166,7 @@ def send_notification(sender, instance, **kwargs):
except ObjectDoesNotExist:
continue
send_request(subscription.inbox, url_resource, instance, kwargs.get("created", False))
send_request(subscription.inbox, url_resource, instance, kwargs.get("created"))
recipients.append(subscription.inbox)
@ -181,9 +182,11 @@ def _handle_prosody_response(sender, response, saved_activity, **kwargs):
def send_request(target, object_iri, instance, created):
unknown = str(_("Auteur inconnu"))
author = getattr(getattr(instance, MODEL_MODIFICATION_USER_FIELD, unknown), "urlid", unknown)
author = getattr(getattr(instance, MODEL_MODIFICATION_USER_FIELD, None), "urlid", str(_("Auteur inconnu")))
if(created is not None):
request_type = "creation" if created else "update"
else:
request_type = "deletion"
# local inbox
if target.startswith(settings.SITE_URL):