)
end
- defp put_application(params, %{assigns: %{token: %Token{} = token}} = _conn) do
- %{client_name: client_name, website: website} = Repo.preload(token, :app).app
- Map.put(params, :application, %{name: client_name, website: website})
+ defp put_application(params, %{assigns: %{token: %Token{user: %User{} = user} = token}} = _conn) do
+ if user.disclose_client do
+ %{client_name: client_name, website: website} = Repo.preload(token, :app).app
+ Map.put(params, :application, %{name: client_name, website: website})
+ else
+ Map.put(params, :application, nil)
+ end
end
defp put_application(params, _), do: Map.put(params, :application, nil)
assert activity.data["cc"] == []
end
- test "preserves client application metadata" do
- %{user: _user, token: token, conn: conn} = oauth_access(["write:statuses"])
+ test "discloses application metadata when enabled" do
+ user = insert(:user, disclose_client: true)
+ %{user: _user, token: token, conn: conn} = oauth_access(["write:statuses"], user: user)
%Pleroma.Web.OAuth.Token{
app: %Pleroma.Web.OAuth.App{
}
} = json_response_and_validate_schema(result, 200)
end
+
+ test "hides application metadata when disabled" do
+ user = insert(:user, disclose_client: false)
+ %{user: _user, token: _token, conn: conn} = oauth_access(["write:statuses"], user: user)
+
+ result =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post("/api/v1/statuses", %{
+ "status" => "club mate is my wingman"
+ })
+
+ assert %{
+ "content" => "club mate is my wingman",
+ "application" => nil
+ } = json_response_and_validate_schema(result, 200)
+ end
end
describe "posting scheduled statuses" do