kopia lustrzana https://gitlab.com/jaywink/federation
add validation_target_id method to prevent sending Diaspora replies and shares to AP.
rodzic
36db16d0c5
commit
39a5e0f39e
|
@ -21,7 +21,7 @@ from federation.entities.utils import get_base_attributes, get_profile
|
||||||
from federation.outbound import handle_send
|
from federation.outbound import handle_send
|
||||||
from federation.types import UserType, ReceiverVariant
|
from federation.types import UserType, ReceiverVariant
|
||||||
from federation.utils.activitypub import retrieve_and_parse_document, retrieve_and_parse_profile, get_profile_id_from_webfinger
|
from federation.utils.activitypub import retrieve_and_parse_document, retrieve_and_parse_profile, get_profile_id_from_webfinger
|
||||||
from federation.utils.django import get_requests_cache_backend
|
from federation.utils.django import get_configuration, get_requests_cache_backend
|
||||||
from federation.utils.text import with_slash, validate_handle
|
from federation.utils.text import with_slash, validate_handle
|
||||||
import federation.entities.base as base
|
import federation.entities.base as base
|
||||||
|
|
||||||
|
@ -949,6 +949,14 @@ class Post(Note, base.Post):
|
||||||
|
|
||||||
|
|
||||||
class Comment(Note, base.Comment):
|
class Comment(Note, base.Comment):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self._required += ['target_id']
|
||||||
|
|
||||||
|
def validate_target_id(self):
|
||||||
|
if not self.target_id.startswith('https'):
|
||||||
|
raise ValueError(f'Invalid target_id for activitypub ({self.target_id})')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
rdf_type = as2.Note
|
rdf_type = as2.Note
|
||||||
exclude = ('handle',)
|
exclude = ('handle',)
|
||||||
|
@ -1118,6 +1126,14 @@ class Announce(Activity, base.Share):
|
||||||
id = fields.Id()
|
id = fields.Id()
|
||||||
target_id = IRI(as2.object)
|
target_id = IRI(as2.object)
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self._required += ['target_id']
|
||||||
|
|
||||||
|
def validate_target_id(self):
|
||||||
|
if not self.target_id.startswith('https'):
|
||||||
|
raise ValueError(f'Invalid target_id for activitypub ({self.target_id})')
|
||||||
|
|
||||||
def to_as2(self):
|
def to_as2(self):
|
||||||
if isinstance(self.activity, type):
|
if isinstance(self.activity, type):
|
||||||
self.activity = self.activity(
|
self.activity = self.activity(
|
||||||
|
|
Ładowanie…
Reference in New Issue