mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2025-04-24 22:07:52 -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"
|
command_args="--erl \"-detached\" -S /usr/local/bin/mix phx.server"
|
||||||
procname="*beam.smp"
|
procname="*beam.smp"
|
||||||
|
|
||||||
|
PATH="${PATH}:/usr/local/sbin:/usr/local/bin"
|
||||||
|
|
||||||
run_rc_command "$1"
|
run_rc_command "$1"
|
||||||
|
|
|
@ -97,7 +97,7 @@ defmodule Pleroma.Web.ApiSpec do
|
||||||
"Frontend management",
|
"Frontend management",
|
||||||
"Instance configuration",
|
"Instance configuration",
|
||||||
"Instance documents",
|
"Instance documents",
|
||||||
"Instance rule managment",
|
"Instance rule management",
|
||||||
"Invites",
|
"Invites",
|
||||||
"MediaProxy cache",
|
"MediaProxy cache",
|
||||||
"OAuth application management",
|
"OAuth application management",
|
||||||
|
|
|
@ -16,7 +16,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
||||||
|
|
||||||
def index_operation do
|
def index_operation do
|
||||||
%Operation{
|
%Operation{
|
||||||
tags: ["Instance rule managment"],
|
tags: ["Instance rule management"],
|
||||||
summary: "Retrieve list of instance rules",
|
summary: "Retrieve list of instance rules",
|
||||||
operationId: "AdminAPI.RuleController.index",
|
operationId: "AdminAPI.RuleController.index",
|
||||||
security: [%{"oAuth" => ["admin:read"]}],
|
security: [%{"oAuth" => ["admin:read"]}],
|
||||||
|
@ -33,7 +33,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
||||||
|
|
||||||
def create_operation do
|
def create_operation do
|
||||||
%Operation{
|
%Operation{
|
||||||
tags: ["Instance rule managment"],
|
tags: ["Instance rule management"],
|
||||||
summary: "Create new rule",
|
summary: "Create new rule",
|
||||||
operationId: "AdminAPI.RuleController.create",
|
operationId: "AdminAPI.RuleController.create",
|
||||||
security: [%{"oAuth" => ["admin:write"]}],
|
security: [%{"oAuth" => ["admin:write"]}],
|
||||||
|
@ -49,7 +49,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
||||||
|
|
||||||
def update_operation do
|
def update_operation do
|
||||||
%Operation{
|
%Operation{
|
||||||
tags: ["Instance rule managment"],
|
tags: ["Instance rule management"],
|
||||||
summary: "Modify existing rule",
|
summary: "Modify existing rule",
|
||||||
operationId: "AdminAPI.RuleController.update",
|
operationId: "AdminAPI.RuleController.update",
|
||||||
security: [%{"oAuth" => ["admin:write"]}],
|
security: [%{"oAuth" => ["admin:write"]}],
|
||||||
|
@ -65,7 +65,7 @@ defmodule Pleroma.Web.ApiSpec.Admin.RuleOperation do
|
||||||
|
|
||||||
def delete_operation do
|
def delete_operation do
|
||||||
%Operation{
|
%Operation{
|
||||||
tags: ["Instance rule managment"],
|
tags: ["Instance rule management"],
|
||||||
summary: "Delete rule",
|
summary: "Delete rule",
|
||||||
operationId: "AdminAPI.RuleController.delete",
|
operationId: "AdminAPI.RuleController.delete",
|
||||||
parameters: [Operation.parameter(:id, :path, :string, "Rule ID")],
|
parameters: [Operation.parameter(:id, :path, :string, "Rule ID")],
|
||||||
|
|
|
@ -52,7 +52,7 @@ defmodule Pleroma.Web.ApiSpec.InstanceOperation do
|
||||||
summary: "Retrieve list of instance rules",
|
summary: "Retrieve list of instance rules",
|
||||||
operationId: "InstanceController.rules",
|
operationId: "InstanceController.rules",
|
||||||
responses: %{
|
responses: %{
|
||||||
200 => Operation.response("Array of domains", "application/json", array_of_rules())
|
200 => Operation.response("Array of rules", "application/json", array_of_rules())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -261,6 +261,21 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp pleroma_configuration(instance) do
|
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: %{
|
metadata: %{
|
||||||
account_activation_required: Keyword.get(instance, :account_activation_required),
|
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_required: Config.get([:instance, :birthday_required]),
|
||||||
birthday_min_age: Config.get([:instance, :birthday_min_age]),
|
birthday_min_age: Config.get([:instance, :birthday_min_age]),
|
||||||
translation: supported_languages(),
|
translation: supported_languages(),
|
||||||
|
base_urls: base_urls,
|
||||||
markup: markup()
|
markup: markup()
|
||||||
},
|
},
|
||||||
stats: %{mau: Pleroma.User.active_user_count()},
|
stats: %{mau: Pleroma.User.active_user_count()},
|
||||||
|
|
|
@ -826,7 +826,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
||||||
assert object.data["repliesCount"] == 2
|
assert object.data["repliesCount"] == 2
|
||||||
end
|
end
|
||||||
|
|
||||||
test "increates quotes count", %{user: user} do
|
test "increases quotes count", %{user: user} do
|
||||||
user2 = insert(:user)
|
user2 = insert(:user)
|
||||||
|
|
||||||
{:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"})
|
{: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")
|
|> get("/api/v1/instance/translation_languages")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue