mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2025-04-24 13:57:23 -04:00
Merge remote-tracking branch 'origin/develop' into instance-markup-info
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl>
This commit is contained in:
commit
7234aa8c18
10 changed files with 60 additions and 7 deletions
1
changelog.d/freebsd-rc.fix
Normal file
1
changelog.d/freebsd-rc.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Set PATH in the FreeBSD rc script to avoid failures starting the service
|
1
changelog.d/siteinfo-baseurls.add
Normal file
1
changelog.d/siteinfo-baseurls.add
Normal file
|
@ -0,0 +1 @@
|
|||
Add `base_urls` to the /api/v1/instance pleroma metadata which provides information about the base URLs for media_proxy and uploads when configured
|
0
changelog.d/typos.skip
Normal file
0
changelog.d/typos.skip
Normal file
|
@ -24,4 +24,6 @@ command=/usr/local/bin/elixir
|
|||
command_args="--erl \"-detached\" -S /usr/local/bin/mix phx.server"
|
||||
procname="*beam.smp"
|
||||
|
||||
PATH="${PATH}:/usr/local/sbin:/usr/local/bin"
|
||||
|
||||
run_rc_command "$1"
|
||||
|
|
|
@ -97,7 +97,7 @@ defmodule Pleroma.Web.ApiSpec do
|
|||
"Frontend management",
|
||||
"Instance configuration",
|
||||
"Instance documents",
|
||||
"Instance rule managment",
|
||||
"Instance rule management",
|
||||
"Invites",
|
||||
"MediaProxy cache",
|
||||
"OAuth application management",
|
||||
|
|
|
@ -16,7 +16,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
|||
|
||||
def index_operation do
|
||||
%Operation{
|
||||
tags: ["Instance rule managment"],
|
||||
tags: ["Instance rule management"],
|
||||
summary: "Retrieve list of instance rules",
|
||||
operationId: "AdminAPI.RuleController.index",
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
|
@ -33,7 +33,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
|||
|
||||
def create_operation do
|
||||
%Operation{
|
||||
tags: ["Instance rule managment"],
|
||||
tags: ["Instance rule management"],
|
||||
summary: "Create new rule",
|
||||
operationId: "AdminAPI.RuleController.create",
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
|
@ -49,7 +49,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
|||
|
||||
def update_operation do
|
||||
%Operation{
|
||||
tags: ["Instance rule managment"],
|
||||
tags: ["Instance rule management"],
|
||||
summary: "Modify existing rule",
|
||||
operationId: "AdminAPI.RuleController.update",
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
|
@ -65,7 +65,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
|||
|
||||
def delete_operation do
|
||||
%Operation{
|
||||
tags: ["Instance rule managment"],
|
||||
tags: ["Instance rule management"],
|
||||
summary: "Delete rule",
|
||||
operationId: "AdminAPI.RuleController.delete",
|
||||
parameters: [Operation.parameter(:id, :path, :string, "Rule ID")],
|
||||
|
|
|
@ -52,7 +52,7 @@ defmodule Pleroma.Web.ApiSpec.InstanceOperation do
|
|||
summary: "Retrieve list of instance rules",
|
||||
operationId: "InstanceController.rules",
|
||||
responses: %{
|
||||
200 => Operation.response("Array of domains", "application/json", array_of_rules())
|
||||
200 => Operation.response("Array of rules", "application/json", array_of_rules())
|
||||
}
|
||||
}
|
||||
end
|
||||
|
|
|
@ -261,6 +261,21 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|
|||
end
|
||||
|
||||
defp pleroma_configuration(instance) do
|
||||
base_urls = %{}
|
||||
|
||||
base_urls =
|
||||
if Config.get([:media_proxy, :enabled]) do
|
||||
Map.put(base_urls, :media_proxy, Config.get([:media_proxy, :base_url]))
|
||||
else
|
||||
base_urls
|
||||
end
|
||||
|
||||
base_urls =
|
||||
case Config.get([Pleroma.Upload, :base_url]) do
|
||||
nil -> base_urls
|
||||
url -> Map.put(base_urls, :upload, url)
|
||||
end
|
||||
|
||||
%{
|
||||
metadata: %{
|
||||
account_activation_required: Keyword.get(instance, :account_activation_required),
|
||||
|
@ -271,6 +286,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|
|||
birthday_required: Config.get([:instance, :birthday_required]),
|
||||
birthday_min_age: Config.get([:instance, :birthday_min_age]),
|
||||
translation: supported_languages(),
|
||||
base_urls: base_urls,
|
||||
markup: markup()
|
||||
},
|
||||
stats: %{mau: Pleroma.User.active_user_count()},
|
||||
|
|
|
@ -826,7 +826,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
|||
assert object.data["repliesCount"] == 2
|
||||
end
|
||||
|
||||
test "increates quotes count", %{user: user} do
|
||||
test "increases quotes count", %{user: user} do
|
||||
user2 = insert(:user)
|
||||
|
||||
{:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"})
|
||||
|
|
|
@ -161,4 +161,37 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do
|
|||
|> get("/api/v1/instance/translation_languages")
|
||||
|> json_response_and_validate_schema(200)
|
||||
end
|
||||
|
||||
test "base_urls in pleroma metadata", %{conn: conn} do
|
||||
media_proxy_base_url = "https://media.example.org"
|
||||
upload_base_url = "https://uploads.example.org"
|
||||
|
||||
clear_config([:media_proxy, :enabled], true)
|
||||
clear_config([:media_proxy, :base_url], media_proxy_base_url)
|
||||
clear_config([Pleroma.Upload, :base_url], upload_base_url)
|
||||
|
||||
conn = get(conn, "/api/v1/instance")
|
||||
|
||||
assert result = json_response_and_validate_schema(conn, 200)
|
||||
assert result["pleroma"]["metadata"]["base_urls"]["media_proxy"] == media_proxy_base_url
|
||||
assert result["pleroma"]["metadata"]["base_urls"]["upload"] == upload_base_url
|
||||
|
||||
# Test when media_proxy is disabled
|
||||
clear_config([:media_proxy, :enabled], false)
|
||||
|
||||
conn = get(conn, "/api/v1/instance")
|
||||
|
||||
assert result = json_response_and_validate_schema(conn, 200)
|
||||
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "media_proxy")
|
||||
assert result["pleroma"]["metadata"]["base_urls"]["upload"] == upload_base_url
|
||||
|
||||
# Test when upload base_url is not set
|
||||
clear_config([Pleroma.Upload, :base_url], nil)
|
||||
|
||||
conn = get(conn, "/api/v1/instance")
|
||||
|
||||
assert result = json_response_and_validate_schema(conn, 200)
|
||||
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "media_proxy")
|
||||
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "upload")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue