forked from AkkomaGang/akkoma
Merge remote-tracking branch 'remotes/origin/2323-accounts-relationships-hotfix' into output-of-relationships-in-statuses
# Conflicts: # lib/pleroma/web/mastodon_api/views/account_view.ex # lib/pleroma/web/mastodon_api/views/status_view.ex
This commit is contained in:
commit
3fa51f7272
49 changed files with 16 additions and 9 deletions
|
@ -13,17 +13,19 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
alias Pleroma.Web.MediaProxy
|
alias Pleroma.Web.MediaProxy
|
||||||
|
|
||||||
def render("index.json", %{users: users} = opts) do
|
def render("index.json", %{users: users} = opts) do
|
||||||
|
reading_user = opts[:for]
|
||||||
|
|
||||||
# Note: :skip_relationships option is currently intentionally not supported for accounts
|
# Note: :skip_relationships option is currently intentionally not supported for accounts
|
||||||
relationships_opt =
|
relationships_opt =
|
||||||
cond do
|
cond do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
UserRelationship.view_relationships_option(opts[:for], users)
|
UserRelationship.view_relationships_option(reading_user, users)
|
||||||
end
|
end
|
||||||
|
|
||||||
opts = Map.put(opts, :relationships, relationships_opt)
|
opts = Map.put(opts, :relationships, relationships_opt)
|
||||||
|
@ -144,7 +146,7 @@ def render("relationships.json", %{user: user, targets: targets} = opts) do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
|
|
|
@ -36,7 +36,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
|
|
|
@ -72,6 +72,8 @@ defp reblogged?(activity, user) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def render("index.json", opts) do
|
def render("index.json", opts) do
|
||||||
|
reading_user = opts[:for]
|
||||||
|
|
||||||
# To do: check AdminAPIControllerTest on the reasons behind nil activities in the list
|
# To do: check AdminAPIControllerTest on the reasons behind nil activities in the list
|
||||||
activities = Enum.filter(opts.activities, & &1)
|
activities = Enum.filter(opts.activities, & &1)
|
||||||
replied_to_activities = get_replied_to_activities(activities)
|
replied_to_activities = get_replied_to_activities(activities)
|
||||||
|
@ -82,8 +84,8 @@ def render("index.json", opts) do
|
||||||
|> Enum.map(&Object.normalize(&1).data["id"])
|
|> Enum.map(&Object.normalize(&1).data["id"])
|
||||||
|> Activity.create_by_object_ap_id()
|
|> Activity.create_by_object_ap_id()
|
||||||
|> Activity.with_preloaded_object(:left)
|
|> Activity.with_preloaded_object(:left)
|
||||||
|> Activity.with_preloaded_bookmark(opts[:for])
|
|> Activity.with_preloaded_bookmark(reading_user)
|
||||||
|> Activity.with_set_thread_muted_field(opts[:for])
|
|> Activity.with_set_thread_muted_field(reading_user)
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
|
|
||||||
relationships_opt =
|
relationships_opt =
|
||||||
|
@ -91,13 +93,13 @@ def render("index.json", opts) do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
|
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
|
||||||
|
|
||||||
UserRelationship.view_relationships_option(opts[:for], actors,
|
UserRelationship.view_relationships_option(reading_user, actors,
|
||||||
source_mutes_only: opts[:skip_relationships]
|
source_mutes_only: opts[:skip_relationships]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/chunk-13e9.98eaadba.css
Normal file
BIN
priv/static/adminfe/chunk-13e9.98eaadba.css
Normal file
Binary file not shown.
BIN
priv/static/adminfe/chunk-2b9c.feb61a2b.css
Normal file
BIN
priv/static/adminfe/chunk-2b9c.feb61a2b.css
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/chunk-87b3.3c6ede9c.css
Normal file
BIN
priv/static/adminfe/chunk-87b3.3c6ede9c.css
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>Admin FE</title><link rel="shortcut icon" href=favicon.ico><link href=chunk-elementUI.1abbc9b8.css rel=stylesheet><link href=chunk-libs.686b5876.css rel=stylesheet><link href=app.c836e084.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=static/js/runtime.fa19e5d1.js></script><script type=text/javascript src=static/js/chunk-elementUI.fba0efec.js></script><script type=text/javascript src=static/js/chunk-libs.b8c453ab.js></script><script type=text/javascript src=static/js/app.d2c3c6b3.js></script></body></html>
|
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>Admin FE</title><link rel="shortcut icon" href=favicon.ico><link href=chunk-elementUI.1abbc9b8.css rel=stylesheet><link href=chunk-libs.686b5876.css rel=stylesheet><link href=app.85534e14.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=static/js/runtime.cb26bbd1.js></script><script type=text/javascript src=static/js/chunk-elementUI.fba0efec.js></script><script type=text/javascript src=static/js/chunk-libs.b8c453ab.js></script><script type=text/javascript src=static/js/app.d898cc2b.js></script></body></html>
|
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/static/js/app.d898cc2b.js
Normal file
BIN
priv/static/adminfe/static/js/app.d898cc2b.js
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/app.d898cc2b.js.map
Normal file
BIN
priv/static/adminfe/static/js/app.d898cc2b.js.map
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-13e9.79da1569.js
Normal file
BIN
priv/static/adminfe/static/js/chunk-13e9.79da1569.js
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-13e9.79da1569.js.map
Normal file
BIN
priv/static/adminfe/static/js/chunk-13e9.79da1569.js.map
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-2b9c.cf321c74.js
Normal file
BIN
priv/static/adminfe/static/js/chunk-2b9c.cf321c74.js
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-2b9c.cf321c74.js.map
Normal file
BIN
priv/static/adminfe/static/js/chunk-2b9c.cf321c74.js.map
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-87b3.3c11ef09.js.map
Normal file
BIN
priv/static/adminfe/static/js/chunk-87b3.3c11ef09.js.map
Normal file
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-88c9.e3583744.js
Normal file
BIN
priv/static/adminfe/static/js/chunk-88c9.e3583744.js
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-88c9.e3583744.js.map
Normal file
BIN
priv/static/adminfe/static/js/chunk-88c9.e3583744.js.map
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-cf57.3e45f57f.js
Normal file
BIN
priv/static/adminfe/static/js/chunk-cf57.3e45f57f.js
Normal file
Binary file not shown.
BIN
priv/static/adminfe/static/js/chunk-cf57.3e45f57f.js.map
Normal file
BIN
priv/static/adminfe/static/js/chunk-cf57.3e45f57f.js.map
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
priv/static/adminfe/static/js/runtime.cb26bbd1.js
Normal file
BIN
priv/static/adminfe/static/js/runtime.cb26bbd1.js
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -209,6 +209,9 @@ defp test_relationship_rendering(user, other_user, expected_result) do
|
||||||
relationships_opt = UserRelationship.view_relationships_option(user, [other_user])
|
relationships_opt = UserRelationship.view_relationships_option(user, [other_user])
|
||||||
opts = Map.put(opts, :relationships, relationships_opt)
|
opts = Map.put(opts, :relationships, relationships_opt)
|
||||||
assert expected_result == AccountView.render("relationship.json", opts)
|
assert expected_result == AccountView.render("relationship.json", opts)
|
||||||
|
|
||||||
|
assert [expected_result] ==
|
||||||
|
AccountView.render("relationships.json", %{user: user, targets: [other_user]})
|
||||||
end
|
end
|
||||||
|
|
||||||
@blank_response %{
|
@blank_response %{
|
||||||
|
|
Loading…
Reference in a new issue