Specify default scope in verify_credentials
Certain Mastodon/Pleroma front ends call verify_credentials to get the default scope of a new toot. Currently, Pleroma hardcodes this value to "public". This patch changes it to the user's default_scope value.
This commit is contained in:
parent
d31bbb1cfe
commit
0c2a0e3551
3 changed files with 28 additions and 3 deletions
|
@ -68,7 +68,8 @@ def user_info(%User{} = user) do
|
|||
following_count: length(user.following) - oneself,
|
||||
note_count: user.info["note_count"] || 0,
|
||||
follower_count: user.info["follower_count"] || 0,
|
||||
locked: user.info["locked"] || false
|
||||
locked: user.info["locked"] || false,
|
||||
default_scope: user.info["default_scope"] || "public"
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ def render("account.json", %{user: user}) do
|
|||
fields: [],
|
||||
source: %{
|
||||
note: "",
|
||||
privacy: "public",
|
||||
privacy: user_info.default_scope,
|
||||
sensitive: "false"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -206,7 +206,19 @@ test "verify_credentials", %{conn: conn} do
|
|||
|> assign(:user, user)
|
||||
|> get("/api/v1/accounts/verify_credentials")
|
||||
|
||||
assert %{"id" => id} = json_response(conn, 200)
|
||||
assert %{"id" => id, "source" => %{"privacy" => "public"}} = json_response(conn, 200)
|
||||
assert id == to_string(user.id)
|
||||
end
|
||||
|
||||
test "verify_credentials default scope unlisted", %{conn: conn} do
|
||||
user = insert(:user, %{info: %{"default_scope" => "unlisted"}})
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> assign(:user, user)
|
||||
|> get("/api/v1/accounts/verify_credentials")
|
||||
|
||||
assert %{"id" => id, "source" => %{"privacy" => "unlisted"}} = json_response(conn, 200)
|
||||
assert id == to_string(user.id)
|
||||
end
|
||||
|
||||
|
@ -715,6 +727,18 @@ test "/api/v1/follow_requests/:id/authorize works" do
|
|||
assert User.following?(other_user, user) == true
|
||||
end
|
||||
|
||||
test "verify_credentials", %{conn: conn} do
|
||||
user = insert(:user, %{info: %{"default_scope" => "private"}})
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> assign(:user, user)
|
||||
|> get("/api/v1/accounts/verify_credentials")
|
||||
|
||||
assert %{"id" => id, "source" => %{"privacy" => "private"}} = json_response(conn, 200)
|
||||
assert id == to_string(user.id)
|
||||
end
|
||||
|
||||
test "/api/v1/follow_requests/:id/reject works" do
|
||||
user = insert(:user, %{info: %{"locked" => true}})
|
||||
other_user = insert(:user)
|
||||
|
|
Loading…
Reference in a new issue