Ryan Barrett 2023-03-10 07:49:41 -08:00
rodzic abf7a9adfe
commit bd748f5db1
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
2 zmienionych plików z 14 dodań i 2 usunięć

Wyświetl plik

@ -171,8 +171,9 @@ class ActivityPub(Protocol):
try:
key_actor = cls.get_object(keyId, user=user).as2
except BadGateway:
if (activity.get('type') == 'Delete' and
fragmentless(keyId) == fragmentless(activity.get('object'))):
obj_id = as1.get_object(activity).get('id')
if (activity.get('type') == 'Delete' and obj_id and
fragmentless(keyId) == fragmentless(obj_id)):
logging.info("Object/actor being deleted is also keyId; ignoring")
abort(202, 'OK')
raise

Wyświetl plik

@ -902,6 +902,17 @@ class ActivityPubTest(testutil.TestCase):
got = self.post('/inbox', json={**DELETE, 'object': 'http://my/key/id'})
self.assertEqual(202, got.status_code)
def test_delete_actor_object_not_stored(self, _, mock_get, ___):
self.key_id_obj.delete()
Protocol.get_object.cache.clear()
mock_get.return_value = requests_response(status=410)
got = self.post('/inbox', json={
**DELETE,
'object': {'id': 'http://my/key/id'},
})
self.assertEqual(202, got.status_code)
def test_delete_note(self, _, mock_get, ___):
obj = Object(id='http://an/obj', as2={})
obj.put()