forked from AkkomaGang/akkoma
More fixes for Info schema.
This commit is contained in:
parent
93f2dc19d9
commit
f18b86fd5f
8 changed files with 44 additions and 14 deletions
|
@ -6,7 +6,7 @@ def init(options) do
|
||||||
options
|
options
|
||||||
end
|
end
|
||||||
|
|
||||||
def call(%{assigns: %{user: %User{info: %{"deactivated" => true}}}} = conn, _) do
|
def call(%{assigns: %{user: %User{info: %{deactivated: true}}}} = conn, _) do
|
||||||
conn
|
conn
|
||||||
|> assign(:user, nil)
|
|> assign(:user, nil)
|
||||||
end
|
end
|
||||||
|
|
|
@ -682,7 +682,7 @@ def delete(%User{} = user) do
|
||||||
{:ok, user}
|
{:ok, user}
|
||||||
end
|
end
|
||||||
|
|
||||||
def html_filter_policy(%User{info: %{"no_rich_text" => true}}) do
|
def html_filter_policy(%User{info: %{no_rich_text: true}}) do
|
||||||
Pleroma.HTML.Scrubber.TwitterText
|
Pleroma.HTML.Scrubber.TwitterText
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ defmodule Pleroma.User.Info do
|
||||||
field(:uri, :string, default: nil)
|
field(:uri, :string, default: nil)
|
||||||
field(:topic, :string, default: nil)
|
field(:topic, :string, default: nil)
|
||||||
field(:hub, :string, default: nil)
|
field(:hub, :string, default: nil)
|
||||||
|
field(:salmon, :string, default: nil)
|
||||||
|
|
||||||
# Found in the wild
|
# Found in the wild
|
||||||
# ap_id -> Where is this used?
|
# ap_id -> Where is this used?
|
||||||
|
@ -30,11 +31,7 @@ defmodule Pleroma.User.Info do
|
||||||
# avatar -> Where is this used?
|
# avatar -> Where is this used?
|
||||||
# fqn -> Where is this used?
|
# fqn -> Where is this used?
|
||||||
# host -> Where is this used?
|
# host -> Where is this used?
|
||||||
# name -> Where is this used?
|
|
||||||
# nickname -> Where is this used?
|
|
||||||
# salmon -> Where is this used?
|
|
||||||
# subject _> Where is this used?
|
# subject _> Where is this used?
|
||||||
# subscribe_address -> Where is this used?
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_activation_status(info, deactivated) do
|
def set_activation_status(info, deactivated) do
|
||||||
|
@ -115,7 +112,8 @@ def remote_user_creation(info, params) do
|
||||||
:magic_key,
|
:magic_key,
|
||||||
:uri,
|
:uri,
|
||||||
:hub,
|
:hub,
|
||||||
:topic
|
:topic,
|
||||||
|
:salmon
|
||||||
])
|
])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ def remote_users(%{data: %{"to" => to} = data}) do
|
||||||
|> Enum.filter(fn user -> user && !user.local end)
|
|> Enum.filter(fn user -> user && !user.local end)
|
||||||
end
|
end
|
||||||
|
|
||||||
defp send_to_user(%{info: %{"salmon" => salmon}}, feed, poster) do
|
defp send_to_user(%{info: %{salmon: salmon}}, feed, poster) do
|
||||||
with {:ok, %{status_code: code}} <-
|
with {:ok, %{status_code: code}} <-
|
||||||
poster.(
|
poster.(
|
||||||
salmon,
|
salmon,
|
||||||
|
@ -185,7 +185,7 @@ defp send_to_user(_, _, _), do: nil
|
||||||
]
|
]
|
||||||
def publish(user, activity, poster \\ &@httpoison.post/4)
|
def publish(user, activity, poster \\ &@httpoison.post/4)
|
||||||
|
|
||||||
def publish(%{info: %{"keys" => keys}} = user, %{data: %{"type" => type}} = activity, poster)
|
def publish(%{info: %{keys: keys}} = user, %{data: %{"type" => type}} = activity, poster)
|
||||||
when type in @supported_activities do
|
when type in @supported_activities do
|
||||||
feed = ActivityRepresenter.to_simple_form(activity, user, true)
|
feed = ActivityRepresenter.to_simple_form(activity, user, true)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ test "doesn't do anything if the user isn't set", %{conn: conn} do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with a user that is deactivated, it removes that user", %{conn: conn} do
|
test "with a user that is deactivated, it removes that user", %{conn: conn} do
|
||||||
user = insert(:user, info: %{"deactivated" => true})
|
user = insert(:user, info: %{deactivated: true})
|
||||||
|
|
||||||
conn =
|
conn =
|
||||||
conn
|
conn
|
||||||
|
|
|
@ -548,7 +548,7 @@ test "html_filter_policy returns nil when rich-text is enabled" do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do
|
test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do
|
||||||
user = insert(:user, %{info: %{"no_rich_text" => true}})
|
user = insert(:user, %{info: %{no_rich_text: true}})
|
||||||
|
|
||||||
assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)
|
assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)
|
||||||
end
|
end
|
||||||
|
|
|
@ -329,6 +329,38 @@ test "tries to use the information in poco fields" do
|
||||||
assert user == user_again
|
assert user == user_again
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "find_or_make_user sets all the nessary input fields" do
|
||||||
|
uri = "https://social.heldscal.la/user/23211"
|
||||||
|
{:ok, user} = OStatus.find_or_make_user(uri)
|
||||||
|
|
||||||
|
assert user.info ==
|
||||||
|
%Pleroma.User.Info{
|
||||||
|
id: user.info.id,
|
||||||
|
ap_enabled: false,
|
||||||
|
background: nil,
|
||||||
|
banner: %{},
|
||||||
|
blocks: [],
|
||||||
|
deactivated: false,
|
||||||
|
default_scope: "public",
|
||||||
|
domain_blocks: [],
|
||||||
|
follower_count: 0,
|
||||||
|
is_admin: false,
|
||||||
|
is_moderator: false,
|
||||||
|
keys: nil,
|
||||||
|
locked: false,
|
||||||
|
no_rich_text: false,
|
||||||
|
note_count: 0,
|
||||||
|
settings: nil,
|
||||||
|
source_data: %{},
|
||||||
|
hub: "https://social.heldscal.la/main/push/hub",
|
||||||
|
magic_key:
|
||||||
|
"RSA.uzg6r1peZU0vXGADWxGJ0PE34WvmhjUmydbX5YYdOiXfODVLwCMi1umGoqUDm-mRu4vNEdFBVJU1CpFA7dKzWgIsqsa501i2XqElmEveXRLvNRWFB6nG03Q5OUY2as8eE54BJm0p20GkMfIJGwP6TSFb-ICp3QjzbatuSPJ6xCE=.AQAB",
|
||||||
|
salmon: "https://social.heldscal.la/main/salmon/user/23211",
|
||||||
|
topic: "https://social.heldscal.la/api/statuses/user_timeline/23211.atom",
|
||||||
|
uri: "https://social.heldscal.la/user/23211"
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
test "find_make_or_update_user takes an author element and returns an updated user" do
|
test "find_make_or_update_user takes an author element and returns an updated user" do
|
||||||
uri = "https://social.heldscal.la/user/23211"
|
uri = "https://social.heldscal.la/user/23211"
|
||||||
|
|
||||||
|
|
|
@ -1163,7 +1163,7 @@ test "with credentials and valid password", %{conn: conn, user: current_user} do
|
||||||
|
|
||||||
describe "GET /api/pleroma/friend_requests" do
|
describe "GET /api/pleroma/friend_requests" do
|
||||||
test "it lists friend requests" do
|
test "it lists friend requests" do
|
||||||
user = insert(:user, %{info: %{"locked" => true}})
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
||||||
|
@ -1185,7 +1185,7 @@ test "it lists friend requests" do
|
||||||
|
|
||||||
describe "POST /api/pleroma/friendships/approve" do
|
describe "POST /api/pleroma/friendships/approve" do
|
||||||
test "it approves a friend request" do
|
test "it approves a friend request" do
|
||||||
user = insert(:user, %{info: %{"locked" => true}})
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
||||||
|
@ -1208,7 +1208,7 @@ test "it approves a friend request" do
|
||||||
|
|
||||||
describe "POST /api/pleroma/friendships/deny" do
|
describe "POST /api/pleroma/friendships/deny" do
|
||||||
test "it denies a friend request" do
|
test "it denies a friend request" do
|
||||||
user = insert(:user, %{info: %{"locked" => true}})
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
{:ok, _activity} = ActivityPub.follow(other_user, user)
|
||||||
|
|
Loading…
Reference in a new issue