forked from AkkomaGang/akkoma
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,
|
following_count: length(user.following) - oneself,
|
||||||
note_count: user.info["note_count"] || 0,
|
note_count: user.info["note_count"] || 0,
|
||||||
follower_count: user.info["follower_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
|
end
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ def render("account.json", %{user: user}) do
|
||||||
fields: [],
|
fields: [],
|
||||||
source: %{
|
source: %{
|
||||||
note: "",
|
note: "",
|
||||||
privacy: "public",
|
privacy: user_info.default_scope,
|
||||||
sensitive: "false"
|
sensitive: "false"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,7 +206,19 @@ test "verify_credentials", %{conn: conn} do
|
||||||
|> assign(:user, user)
|
|> assign(:user, user)
|
||||||
|> get("/api/v1/accounts/verify_credentials")
|
|> 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)
|
assert id == to_string(user.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -715,6 +727,18 @@ test "/api/v1/follow_requests/:id/authorize works" do
|
||||||
assert User.following?(other_user, user) == true
|
assert User.following?(other_user, user) == true
|
||||||
end
|
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
|
test "/api/v1/follow_requests/:id/reject works" do
|
||||||
user = insert(:user, %{info: %{"locked" => true}})
|
user = insert(:user, %{info: %{"locked" => true}})
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
Loading…
Reference in a new issue