Browse Source

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.
tags/v0.9.9
Will Pearson 5 years ago
parent
commit
0c2a0e3551
3 changed files with 28 additions and 3 deletions
  1. +2
    -1
      lib/pleroma/user.ex
  2. +1
    -1
      lib/pleroma/web/mastodon_api/views/account_view.ex
  3. +25
    -1
      test/web/mastodon_api/mastodon_api_controller_test.exs

+ 2
- 1
lib/pleroma/user.ex View File

@@ -68,7 +68,8 @@ defmodule Pleroma.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



+ 1
- 1
lib/pleroma/web/mastodon_api/views/account_view.ex View File

@@ -46,7 +46,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
fields: [],
source: %{
note: "",
privacy: "public",
privacy: user_info.default_scope,
sensitive: "false"
}
}


+ 25
- 1
test/web/mastodon_api/mastodon_api_controller_test.exs View File

@@ -206,7 +206,19 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest 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 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest 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…
Cancel
Save