mastodon/app/services
ThibG d19ed18388 Get handle from atom feed's author/email field instead of guessing from URL (#1344)
The goal of this change is to enhance Mastodon's handling of remote domains
for which the APIs reside on a different host (see issue #1032).

Indeed, when a remote user unknown to Mastodon is mentionned, only its profile
URL (e.g. https://social.example.org/users/User) is known, and Mastodon has to
build a @username@domain handle for it. To do so, Mastodon fetches the user's
atom feed (e.g., https://social.example.org/users/User.atom) and uses its
content to get the username part of the handle, and the URL's host part to
build the domain (e.g., @User@social.example.org). This handle is then used
for a Webfinger request.

In the case where example.org serves the Webfinger info for @User@example.org
and all feeds and APIs are hosted at social.example.org, Mastodon will still
build @User@social.example.org and fail at resolving the account's details
through Webfinger.

This patch changes this behaviour by using the author's email address from
the atom feed to build the handle. In Mastodon-generated atom feeds, the
email address is always the handle it expects for federation.
2017-04-09 18:43:48 +02:00
..
concerns Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
pubsubhubbub Disable PuSH for blocked domains 2017-02-14 04:01:37 +01:00
account_search_service.rb New API method: /api/v1/search 2017-03-22 02:32:27 +01:00
after_block_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
authorize_follow_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
base_service.rb Fix rubocop issues, introduce usage of frozen literal to improve performance 2016-11-15 16:56:29 +01:00
block_domain_service.rb Make default admin UI page reports. Add admin UI for creating a domain block 2017-04-03 18:55:06 +02:00
block_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
fan_out_on_write_service.rb Fix wrong pubsub channel on public timelines 2017-04-06 04:03:23 +02:00
favourite_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
fetch_atom_service.rb Shorter timeout on FetchAtomService 2017-03-22 17:41:52 +01:00
fetch_link_card_service.rb Do not run FetchLinkCardService on local URLs, increase file size limit to 8MB, 2017-01-27 16:57:23 +01:00
fetch_remote_account_service.rb Get handle from atom feed's author/email field instead of guessing from URL (#1344) 2017-04-09 18:43:48 +02:00
fetch_remote_resource_service.rb Fix full-text search query quotation, improve tag search performance with an index, 2017-03-22 17:36:34 +01:00
fetch_remote_status_service.rb Fix full-text search query quotation, improve tag search performance with an index, 2017-03-22 17:36:34 +01:00
follow_remote_account_service.rb Merge pull request #1218 from R0ckweb/patch-2 2017-04-08 11:37:13 +02:00
follow_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
mute_service.rb Mute button progress so far. WIP, doesn't entirely work correctly. 2017-03-01 22:31:21 -06:00
notify_service.rb Fix notifications delivered to wrong pubsub channel, optimized RemoveStatusService, 2017-04-06 02:26:59 +02:00
post_status_service.rb Use I18n for media attachment validation errors 2017-04-07 14:23:18 -04:00
precompute_feed_service.rb Spawn FeedInsertWorker to deliver status into personal feed 2017-04-04 19:21:37 +02:00
process_feed_service.rb Fix #1141, fix #1126 - Avatar/profile info fetching (#1215) 2017-04-08 13:26:03 +02:00
process_hashtags_service.rb Instead of using spoiler boolean and spoiler_text, simply check for non-blank spoiler_text 2017-01-25 01:29:16 +01:00
process_interaction_service.rb Split SalmonWorker into smaller parts, move profile updating into another job 2017-04-05 21:43:10 +02:00
process_mentions_service.rb Fix casuality of processing remote mentions such that notifications 2017-03-13 16:34:15 +01:00
reblog_service.rb Add "direct" visibility level in the backend. Web UI is not yet 2017-03-15 22:55:45 +01:00
reject_follow_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
remove_status_service.rb Fix wrong pubsub channel on public timelines 2017-04-06 04:03:23 +02:00
search_service.rb Fix reworked search 2017-03-31 22:45:56 +02:00
send_interaction_service.rb Make follow requests federate 2017-02-11 02:58:00 +01:00
subscribe_service.rb Fix rubocop issues, introduce usage of frozen literal to improve performance 2016-11-15 16:56:29 +01:00
suspend_account_service.rb Domain blocks now have varying severity - auto-suspend vs auto-silence 2017-01-23 17:38:38 +01:00
unblock_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
unfavourite_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
unfollow_service.rb Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124) 2017-04-07 05:56:56 +02:00
unmute_service.rb Fix #231 - Muting 2017-03-02 18:49:32 +01:00
unsubscribe_service.rb Fix #329 - avatar errors no longer prevent remote accounts from being saved 2016-12-02 14:14:49 +01:00
update_remote_profile_service.rb Fix #1141, fix #1126 - Avatar/profile info fetching (#1215) 2017-04-08 13:26:03 +02:00
warm_cache_service.rb Preheat status cache 2017-02-05 17:24:18 +01:00