Merge remote-tracking branch 'upstream/develop' into aliases
authorAlex Gleason <alex@alexgleason.me>
Wed, 30 Dec 2020 23:10:02 +0000 (17:10 -0600)
committerAlex Gleason <alex@alexgleason.me>
Wed, 30 Dec 2020 23:10:02 +0000 (17:10 -0600)
1  2 
CHANGELOG.md
docs/API/differences_in_mastoapi_responses.md
lib/pleroma/user.ex
lib/pleroma/web/api_spec/operations/account_operation.ex
lib/pleroma/web/api_spec/schemas/account.ex
lib/pleroma/web/mastodon_api/controllers/account_controller.ex
lib/pleroma/web/mastodon_api/views/account_view.ex
lib/pleroma/web/web_finger.ex
test/pleroma/web/mastodon_api/update_credentials_test.exs
test/pleroma/web/mastodon_api/views/account_view_test.exs

diff --cc CHANGELOG.md
index 1318b745f1a2fff7efd38291a083d0ea5391ec01,e1604ab3a9e1888999738c442b8d2199961efdd8..b35fc159eb199a5405216e5dde132650ac96530e
@@@ -5,12 -6,89 +6,90 @@@ The format is based on [Keep a Changelo
  
  ## Unreleased
  
+ ### Changed
+ - Polls now always return a `voters_count`, even if they are single-choice.
+ - Admin Emails: The ap id is used as the user link in emails now.
+ - Improved registration workflow for email confirmation and account approval modes.
+ - **Breaking:** Changed `mix pleroma.user toggle_confirmed` to `mix pleroma.user confirm`
+ - Search: When using Postgres 11+, Pleroma will use the `websearch_to_tsvector` function to parse search queries.
+ - Emoji: Support the full Unicode 13.1 set of Emoji for reactions, plus regional indicators.
  ### Added
- - Mix tasks for controlling user account confirmation status in bulk (`mix pleroma.user confirm_all` and `mix pleroma.user unconfirm_all`)
- - Mix task for sending confirmation emails to all unconfirmed users (`mix pleroma.email send_confirmation_mails`)
- - Mix task option for force-unfollowing relays
+ - Reports now generate notifications for admins and mods.
+ - Experimental websocket-based federation between Pleroma instances.
+ - Support for local-only statuses.
+ - Support pagination of blocks and mutes.
+ - Account backup.
+ - Configuration: Add `:instance, autofollowing_nicknames` setting to provide a way to make accounts automatically follow new users that register on the local Pleroma instance.
+ - Ability to view remote timelines, with ex. `/api/v1/timelines/public?instance=lain.com` and streams `public:remote` and `public:remote:media`.
+ - The site title is now injected as a `title` tag like preloads or metadata.
+ - Password reset tokens now are not accepted after a certain age.
+ - Mix tasks to help with displaying and removing ConfigDB entries. See `mix pleroma.config`.
+ - OAuth form improvements: users are remembered by their cookie, the CSS is overridable by the admin, and the style has been improved.
+ - OAuth improvements and fixes: more secure session-based authentication (by token that could be revoked anytime), ability to revoke belonging OAuth token from any client etc.
 +- Ability to set ActivityPub aliases for follower migration.
  
+ <details>
+   <summary>API Changes</summary>
+ - Admin API: (`GET /api/pleroma/admin/users`) filter users by `unconfirmed` status and `actor_type`.
+ - Pleroma API: Add `idempotency_key` to the chat message entity that can be used for optimistic message sending.
+ - Pleroma API: (`GET /api/v1/pleroma/federation_status`) Add a way to get a list of unreachable instances.
+ - Mastodon API: User and conversation mutes can now auto-expire if `expires_in` parameter was given while adding the mute.
+ - Admin API: An endpoint to manage frontends.
+ - Streaming API: Add follow relationships updates.
+ </details>
+ ### Fixed
+ - Users with `is_discoverable` field set to false (default value) will appear in in-service search results but be hidden from external services (search bots etc.).
+ - Streaming API: Posts and notifications are not dropped, when CLI task is executing.
+ - Creating incorrect IPv4 address-style HTTP links when encountering certain numbers.
+ <details>
+   <summary>API Changes</summary>
+   - Mastodon API: Current user is now included in conversation if it's the only participant.
+   - Mastodon API: Fixed last_status.account being not filled with account data.
+ </details>
+ ## Unreleased (Patch)
+ ### Fixed
+ - Fix ability to update Pleroma Chat push notifications with PUT /api/v1/push/subscription and alert type pleroma:chat_mention
+ - Emoji Reaction activity filtering from blocked and muted accounts.
+ ## [2.2.1] - 2020-12-22
+ ### Changed
+ - Updated Pleroma FE
+ ### Fixed
+ - Config generation: rename `Pleroma.Upload.Filter.ExifTool` to `Pleroma.Upload.Filter.Exiftool`.
+ - S3 Uploads with Elixir 1.11.
+ - Mix task pleroma.user delete_activities for source installations.
+ - Search: RUM index search speed has been fixed.
+ - Rich Media Previews sometimes showed the wrong preview due to a bug following redirects.
+ - Fixes for the autolinker.
+ - Forwarded reports duplication from Pleroma instances.
+ - <details>
+     <summary>API</summary>
+   - Statuses were not displayed for Mastodon forwarded reports.
+   </details>
+ ### Upgrade notes
+ 1. Restart Pleroma
+ ## [2.2.0] - 2020-11-12
+ ### Security
+ - Fixed the possibility of using file uploads to spoof posts.
  ### Changed
  
  - **Breaking** Requires `libmagic` (or `file`) to guess file types.
index 3cb2183bdda74f0dcaeaf894fab1d2587622b98c,1b197e073efdde973358c72f4edd68f953a1ea85..84430408b4c3e9fca74f05e476e02eb5622c248e
@@@ -184,9 -206,8 +206,9 @@@ Additional parameters can be added to t
  - `pleroma_settings_store` - Opaque user settings to be saved on the backend.
  - `skip_thread_containment` - if true, skip filtering out broken threads
  - `allow_following_move` - if true, allows automatically follow moved following accounts
 +- `also_known_as` - array of ActivityPub IDs, needed for following move
  - `pleroma_background_image` - sets the background image of the user. Can be set to "" (an empty string) to reset.
- - `discoverable` - if true, discovery of this account in search results and other services is allowed.
+ - `discoverable` - if true, external services (search bots) etc. are allowed to index / list the account (regardless of this setting, user will still appear in regular search results).
  - `actor_type` - the type of this account.
  - `accepts_chat_messages` - if false, this account will reject all chat messages.
  
index 120034db48b363e34b8105fb9e0a7df77e19a051,bd4801058b45243eecd0551125d5b71b90303465..7b26ac7a3ebe0917934adf42a5565b55bfc0cb81
@@@ -497,8 -521,9 +523,8 @@@ defmodule Pleroma.User d
          :fields,
          :raw_fields,
          :pleroma_settings_store,
-         :discoverable,
+         :is_discoverable,
          :actor_type,
 -        :also_known_as,
          :accepts_chat_messages
        ]
      )
      |> Map.put(:fields, fields)
    end
  
 +  defp validate_also_known_as(changeset) do
 +    validate_change(changeset, :also_known_as, fn :also_known_as, also_known_as ->
 +      case Enum.all?(also_known_as, fn a -> Regex.match?(@url_regex, a) end) do
 +        true -> []
 +        false -> [also_known_as: "Invalid ap_id format. Must be a URL."]
 +      end
 +    end)
 +  end
++
+   def get_host(%User{ap_id: ap_id} = _user) do
+     URI.parse(ap_id).host
+   end
  end
index fb1552f215127877d6329e9767f23afee74dfcb6,b4375872b6743ecf725fe60654f74fd05ddccb33..3951d10ac9a2cfb371d4e18706386da55062d37b
@@@ -185,8 -184,6 +184,7 @@@ defmodule Pleroma.Web.MastodonAPI.Accou
          :show_role,
          :skip_thread_containment,
          :allow_following_move,
-         :discoverable,
 +        :also_known_as,
          :accepts_chat_messages
        ]
        |> Enum.reduce(%{}, fn key, acc ->
          if bot, do: {:ok, "Service"}, else: {:ok, "Person"}
        end)
        |> Maps.put_if_present(:actor_type, params[:actor_type])
 +      |> Maps.put_if_present(:also_known_as, params[:also_known_as])
+       # Note: param name is indeed :locked (not an error)
        |> Maps.put_if_present(:is_locked, params[:locked])
+       # Note: param name is indeed :discoverable (not an error)
+       |> Maps.put_if_present(:is_discoverable, params[:discoverable])
  
      # What happens here:
      #
Simple merge