mastodon/app/lib
ThibG e041b8b3f8 Fix not handling Undo on some activity types when they aren't inlined (#14346)
* Fix not handling Undo on some activity types when they aren't inlined

When receiving an Undo for a non-inlined activity, try looking it up in
database using the URI. The queries are ad-hoc because we don't have a global
index of object URIs, and not all activity types are stored in database with
an index on their URI.

Announces are just statuses, and have an index on URIs, so this check can
be done efficiently.

Accepts cannot be handled at all because we don't record their URI at any
point.

Follows don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.

Likes don't have an index on URI, they have an index on the issuing account,
but the number of favs per account may be very high, so I decided not to
handle that.

Blocks don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.

In all cases, if an Undo could not be handled properly, we call `delete_later!`
because that does not require us to know more than the URI of the undone
property.

* Add tests

* Make newer blocks overwrite older ones

Allows re-synchronizing block info by re-blocking and un-blocking again
when the original Undo Block has been lost.
2020-07-22 11:45:35 +02:00
..
activitypub Fix not handling Undo on some activity types when they aren't inlined (#14346) 2020-07-22 11:45:35 +02:00
connection_pool Add request pool to improve delivery performance (#10353) 2019-07-02 00:34:38 +02:00
nodeinfo Add a nodeinfo endpoint (#12002) 2019-09-29 21:31:51 +02:00
ostatus Remove Atom feeds and old URLs in the form of `GET /:username/updates/:id` (#11247) 2019-07-07 16:16:51 +02:00
proof_provider Fix rubocop warning (#14288) 2020-07-14 19:05:07 +02:00
rss Improve RSS entries for statuses (#13592) 2020-05-10 09:50:54 +02:00
settings Fix rubocop warning (#14288) 2020-07-14 19:05:07 +02:00
activity_tracker.rb Add a nodeinfo endpoint (#12002) 2019-09-29 21:31:51 +02:00
application_extension.rb Conditional validations no longer accept strings for if/unless (#3124) 2017-05-19 03:11:23 +02:00
delivery_failure_tracker.rb Change delivery failure tracking to work with hostnames instead of URLs (#13437) 2020-04-15 20:33:24 +02:00
entity_cache.rb Fix PostgreSQL load when linking in announcements (#13250) 2020-04-05 12:51:22 +02:00
exceptions.rb Fix movie width and frame_rate returning nil (#14357) 2020-07-19 22:28:27 +02:00
extractor.rb Using double splat operator (#5859) 2017-12-06 11:41:57 +01:00
fast_geometry_parser.rb Fix avatar and header issues by using custom geometry detector (#6515) 2018-02-21 03:40:12 +01:00
feed_manager.rb Fix boosted toots from blocked account not being retroactively removed from TL (#14339) 2020-07-17 07:07:54 +02:00
formatter.rb Fix malformed HTML causing uncaught error (#13042) 2020-02-07 15:24:22 +01:00
hash_object.rb
inline_renderer.rb Add E2EE API (#13820) 2020-06-02 19:24:53 +02:00
language_detector.rb Fix Thai being skipped from language detection (#13989) 2020-06-25 22:45:01 +02:00
potential_friendship_tracker.rb Create Redisable#redis (#9633) 2019-02-02 19:11:38 +01:00
proof_provider.rb Add Keybase integration (#10297) 2019-03-18 21:00:55 +01:00
rate_limiter.rb Add rate limit for reporting (#13390) 2020-04-05 14:40:08 +02:00
request.rb Fix rubocop warning (#14288) 2020-07-14 19:05:07 +02:00
request_pool.rb Add request pool to improve delivery performance (#10353) 2019-07-02 00:34:38 +02:00
response_with_limit.rb Fix remote files not using Content-Type header, streaming (#14184) 2020-06-30 23:58:02 +02:00
rss_builder.rb Add RSS feeds for end-users (#7259) 2018-04-25 02:10:02 +02:00
sanitize_config.rb Fix rendering `<a>` without `href` when scheme unsupported (#13040) 2020-02-08 21:22:38 +01:00
search_query_parser.rb Fix accounts search by full/partial display name and others (#11580) 2019-08-16 13:00:30 +02:00
search_query_transformer.rb Fix error when searching for empty phrase (#12711) 2019-12-30 18:30:24 +01:00
sidekiq_error_handler.rb Fix error within error when limiting backtrace to 3 lines (#13120) 2020-05-10 10:30:27 +02:00
spam_check.rb Exempt staff members from spam check (#12874) 2020-01-17 07:50:30 +01:00
status_filter.rb Fix n+1 queries in StatusThreadingConcern (#7321) 2018-05-03 10:41:58 +02:00
status_finder.rb Remove Atom feeds and old URLs in the form of `GET /:username/updates/:id` (#11247) 2019-07-07 16:16:51 +02:00
tag_manager.rb Refactor domain block checks (#11268) 2019-07-09 03:27:35 +02:00
themes.rb Add support for multiple themes (#4959) 2017-09-19 16:36:23 +02:00
toc_generator.rb Add fallback section ID with ToC (#11941) 2019-09-23 17:25:10 +02:00
user_settings_decorator.rb Add setting for whether to crop images in unexpanded toots (#12126) 2019-10-24 22:51:41 +02:00
webfinger_resource.rb Fix webfinger returning wrong status code on malformed or missing param (#13759) 2020-05-14 23:28:06 +02:00