diff options
| author | lain <lain@soykaf.club> | 2020-06-29 08:39:51 +0000 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-06-29 08:39:51 +0000 | 
| commit | 577da132da692a205bd8f3b454db8f9cf235a610 (patch) | |
| tree | 9443eae81726143e15ab3c3d20e2546f259cbd96 /lib | |
| parent | e229640372b7b00c71ea8c7f523d018b01d270f3 (diff) | |
| parent | 4c5fb831b3b59309a475a141eb73cc440533d0ff (diff) | |
| download | pleroma-577da132da692a205bd8f3b454db8f9cf235a610.tar.gz pleroma-577da132da692a205bd8f3b454db8f9cf235a610.zip | |
Merge branch '1031-parent-visible' into 'develop'
Resolve "Add `pleroma.parent_visible` to the status view"
Closes #1031
See merge request pleroma/pleroma!2679
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/visibility.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/web/api_spec/schemas/status.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 5 | 
3 files changed, 11 insertions, 4 deletions
| diff --git a/lib/pleroma/web/activity_pub/visibility.ex b/lib/pleroma/web/activity_pub/visibility.ex index 453a6842e..343f41caa 100644 --- a/lib/pleroma/web/activity_pub/visibility.ex +++ b/lib/pleroma/web/activity_pub/visibility.ex @@ -47,6 +47,10 @@ defmodule Pleroma.Web.ActivityPub.Visibility do    @spec visible_for_user?(Activity.t(), User.t() | nil) :: boolean()    def visible_for_user?(%{actor: ap_id}, %User{ap_id: ap_id}), do: true +  def visible_for_user?(nil, _), do: false + +  def visible_for_user?(%{data: %{"listMessage" => _}}, nil), do: false +    def visible_for_user?(%{data: %{"listMessage" => list_ap_id}} = activity, %User{} = user) do      user.ap_id in activity.data["to"] ||        list_ap_id @@ -54,8 +58,6 @@ defmodule Pleroma.Web.ActivityPub.Visibility do        |> Pleroma.List.member?(user)    end -  def visible_for_user?(%{data: %{"listMessage" => _}}, nil), do: false -    def visible_for_user?(%{local: local} = activity, nil) do      cfg_key =        if local, diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index 8b87cb25b..28cde963e 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -184,6 +184,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do            thread_muted: %Schema{              type: :boolean,              description: "`true` if the thread the post belongs to is muted" +          }, +          parent_visible: %Schema{ +            type: :boolean, +            description: "`true` if the parent post is visible to the user"            }          }        }, diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 2c49bedb3..6ee17f4dd 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -21,7 +21,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do    alias Pleroma.Web.MastodonAPI.StatusView    alias Pleroma.Web.MediaProxy -  import Pleroma.Web.ActivityPub.Visibility, only: [get_visibility: 1] +  import Pleroma.Web.ActivityPub.Visibility, only: [get_visibility: 1, visible_for_user?: 2]    # TODO: Add cached version.    defp get_replied_to_activities([]), do: %{} @@ -364,7 +364,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do          expires_at: expires_at,          direct_conversation_id: direct_conversation_id,          thread_muted: thread_muted?, -        emoji_reactions: emoji_reactions +        emoji_reactions: emoji_reactions, +        parent_visible: visible_for_user?(reply_to, opts[:for])        }      }    end | 
