mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-04 15:29:22 +02:00
Do not deliver anything to remote instances when federation is disabled
This commit is contained in:
parent
6572db3a83
commit
b028f3f817
2 changed files with 26 additions and 1 deletions
|
@ -8,6 +8,7 @@ from django.utils import timezone
|
|||
from dynamic_preferences.registries import global_preferences_registry
|
||||
from requests.exceptions import RequestException
|
||||
|
||||
from funkwhale_api.common import preferences
|
||||
from funkwhale_api.common import session
|
||||
from funkwhale_api.music import models as music_models
|
||||
from funkwhale_api.taskapp import celery
|
||||
|
@ -87,11 +88,16 @@ def dispatch_outbox(activity):
|
|||
Deliver a local activity to its recipients, both locally and remotely
|
||||
"""
|
||||
inbox_items = activity.inbox_items.filter(is_read=False).select_related()
|
||||
deliveries = activity.deliveries.filter(is_delivered=False)
|
||||
|
||||
if inbox_items.exists():
|
||||
dispatch_inbox.delay(activity_id=activity.pk)
|
||||
|
||||
if not preferences.get("federation__enabled"):
|
||||
# federation is disabled, we only deliver to local recipients
|
||||
return
|
||||
|
||||
deliveries = activity.deliveries.filter(is_delivered=False)
|
||||
|
||||
for id in deliveries.values_list("pk", flat=True):
|
||||
deliver_to_remote.delay(delivery_id=id)
|
||||
|
||||
|
@ -109,6 +115,11 @@ def dispatch_outbox(activity):
|
|||
"delivery",
|
||||
)
|
||||
def deliver_to_remote(delivery):
|
||||
|
||||
if not preferences.get("federation__enabled"):
|
||||
# federation is disabled, we only deliver to local recipients
|
||||
return
|
||||
|
||||
actor = delivery.activity.actor
|
||||
logger.info("Preparing activity delivery to %s", delivery.inbox_url)
|
||||
auth = signing.get_auth(actor.private_key, actor.private_key_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue