Merge branch 'feature/update-welcome-setting-in-description' into 'develop'

Update :welcome settings in description.exs

Closes #2024

See merge request pleroma/pleroma!2843
This commit is contained in:
feld 2020-08-12 16:18:40 +00:00
commit dfc56de167
2 changed files with 106 additions and 32 deletions

View file

@ -194,7 +194,7 @@ config :pleroma, :config_description, [
type: [:string, {:list, :string}, {:list, :tuple}], type: [:string, {:list, :string}, {:list, :tuple}],
description: description:
"List of actions for the mogrify command. It's possible to add self-written settings as string. " <> "List of actions for the mogrify command. It's possible to add self-written settings as string. " <>
"For example `[\"auto-orient\", \"strip\", {\"resize\", \"3840x1080>\"}]` string will be parsed into list of the settings.", "For example `auto-orient, strip, {\"resize\", \"3840x1080>\"}` value will be parsed into valid list of the settings.",
suggestions: [ suggestions: [
"strip", "strip",
"auto-orient", "auto-orient",
@ -951,7 +951,7 @@ config :pleroma, :config_description, [
}, },
%{ %{
key: :instance_thumbnail, key: :instance_thumbnail,
type: :string, type: {:string, :image},
description: description:
"The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance.", "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance.",
suggestions: ["/instance/thumbnail.jpeg"] suggestions: ["/instance/thumbnail.jpeg"]
@ -964,25 +964,25 @@ config :pleroma, :config_description, [
] ]
}, },
%{ %{
group: :welcome, group: :pleroma,
key: :welcome,
type: :group, type: :group,
description: "Welcome messages settings", description: "Welcome messages settings",
children: [ children: [
%{ %{
group: :direct_message, key: :direct_message,
type: :group, type: :keyword,
descpiption: "Direct message settings", descpiption: "Direct message settings",
children: [ children: [
%{ %{
key: :enabled, key: :enabled,
type: :boolean, type: :boolean,
description: "Enables sends direct message for new user after registration" description: "Enables sending a direct message to newly registered users"
}, },
%{ %{
key: :message, key: :message,
type: :string, type: :string,
description: description: "A message that will be sent to newly registered users",
"A message that will be sent to a newly registered users as a direct message",
suggestions: [ suggestions: [
"Hi, @username! Welcome on board!" "Hi, @username! Welcome on board!"
] ]
@ -990,7 +990,7 @@ config :pleroma, :config_description, [
%{ %{
key: :sender_nickname, key: :sender_nickname,
type: :string, type: :string,
description: "The nickname of the local user that sends the welcome message", description: "The nickname of the local user that sends a welcome message",
suggestions: [ suggestions: [
"lain" "lain"
] ]
@ -998,20 +998,20 @@ config :pleroma, :config_description, [
] ]
}, },
%{ %{
group: :chat_message, key: :chat_message,
type: :group, type: :keyword,
descpiption: "Chat message settings", descpiption: "Chat message settings",
children: [ children: [
%{ %{
key: :enabled, key: :enabled,
type: :boolean, type: :boolean,
description: "Enables sends chat message for new user after registration" description: "Enables sending a chat message to newly registered users"
}, },
%{ %{
key: :message, key: :message,
type: :string, type: :string,
description: description:
"A message that will be sent to a newly registered users as a chat message", "A message that will be sent to newly registered users as a chat message",
suggestions: [ suggestions: [
"Hello, welcome on board!" "Hello, welcome on board!"
] ]
@ -1019,7 +1019,7 @@ config :pleroma, :config_description, [
%{ %{
key: :sender_nickname, key: :sender_nickname,
type: :string, type: :string,
description: "The nickname of the local user that sends the welcome message", description: "The nickname of the local user that sends a welcome chat message",
suggestions: [ suggestions: [
"lain" "lain"
] ]
@ -1027,20 +1027,20 @@ config :pleroma, :config_description, [
] ]
}, },
%{ %{
group: :email, key: :email,
type: :group, type: :keyword,
descpiption: "Email message settings", descpiption: "Email message settings",
children: [ children: [
%{ %{
key: :enabled, key: :enabled,
type: :boolean, type: :boolean,
description: "Enables sends direct message for new user after registration" description: "Enables sending an email to newly registered users"
}, },
%{ %{
key: :sender, key: :sender,
type: [:string, :tuple], type: [:string, :tuple],
description: description:
"The email address or tuple with `{nickname, email}` that will use as sender to the welcome email.", "Email address and/or nickname that will be used to send the welcome email.",
suggestions: [ suggestions: [
{"Pleroma App", "welcome@pleroma.app"} {"Pleroma App", "welcome@pleroma.app"}
] ]
@ -1049,21 +1049,21 @@ config :pleroma, :config_description, [
key: :subject, key: :subject,
type: :string, type: :string,
description: description:
"The subject of welcome email. Can be use EEX template with `user` and `instance_name` variables.", "Subject of the welcome email. EEX template with user and instance_name variables can be used.",
suggestions: ["Welcome to <%= instance_name%>"] suggestions: ["Welcome to <%= instance_name%>"]
}, },
%{ %{
key: :html, key: :html,
type: :string, type: :string,
description: description:
"The html content of welcome email. Can be use EEX template with `user` and `instance_name` variables.", "HTML content of the welcome email. EEX template with user and instance_name variables can be used.",
suggestions: ["<h1>Hello <%= user.name%>. Welcome to <%= instance_name%></h1>"] suggestions: ["<h1>Hello <%= user.name%>. Welcome to <%= instance_name%></h1>"]
}, },
%{ %{
key: :text, key: :text,
type: :string, type: :string,
description: description:
"The text content of welcome email. Can be use EEX template with `user` and `instance_name` variables.", "Text content of the welcome email. EEX template with user and instance_name variables can be used.",
suggestions: ["Hello <%= user.name%>. \n Welcome to <%= instance_name%>\n"] suggestions: ["Hello <%= user.name%>. \n Welcome to <%= instance_name%>\n"]
} }
] ]
@ -1236,7 +1236,7 @@ config :pleroma, :config_description, [
}, },
%{ %{
key: :background, key: :background,
type: :string, type: {:string, :image},
description: description:
"URL of the background, unless viewing a user profile with a background that is set", "URL of the background, unless viewing a user profile with a background that is set",
suggestions: ["/images/city.jpg"] suggestions: ["/images/city.jpg"]
@ -1293,7 +1293,7 @@ config :pleroma, :config_description, [
}, },
%{ %{
key: :logo, key: :logo,
type: :string, type: {:string, :image},
description: "URL of the logo, defaults to Pleroma's logo", description: "URL of the logo, defaults to Pleroma's logo",
suggestions: ["/static/logo.png"] suggestions: ["/static/logo.png"]
}, },
@ -1325,7 +1325,7 @@ config :pleroma, :config_description, [
%{ %{
key: :nsfwCensorImage, key: :nsfwCensorImage,
label: "NSFW Censor Image", label: "NSFW Censor Image",
type: :string, type: {:string, :image},
description: description:
"URL of the image to use for hiding NSFW media attachments in the timeline", "URL of the image to use for hiding NSFW media attachments in the timeline",
suggestions: ["/static/img/nsfw.74818f9.png"] suggestions: ["/static/img/nsfw.74818f9.png"]
@ -1451,7 +1451,7 @@ config :pleroma, :config_description, [
}, },
%{ %{
key: :default_user_avatar, key: :default_user_avatar,
type: :string, type: {:string, :image},
description: "URL of the default user avatar", description: "URL of the default user avatar",
suggestions: ["/images/avi.png"] suggestions: ["/images/avi.png"]
} }
@ -2642,7 +2642,7 @@ config :pleroma, :config_description, [
children: [ children: [
%{ %{
key: :logo, key: :logo,
type: :string, type: {:string, :image},
description: "A path to a custom logo. Set it to `nil` to use the default Pleroma logo.", description: "A path to a custom logo. Set it to `nil` to use the default Pleroma logo.",
suggestions: ["some/path/logo.png"] suggestions: ["some/path/logo.png"]
}, },
@ -3299,7 +3299,7 @@ config :pleroma, :config_description, [
group: :pleroma, group: :pleroma,
key: :connections_pool, key: :connections_pool,
type: :group, type: :group,
description: "Advanced settings for `gun` connections pool", description: "Advanced settings for `Gun` connections pool",
children: [ children: [
%{ %{
key: :connection_acquisition_wait, key: :connection_acquisition_wait,
@ -3340,7 +3340,7 @@ config :pleroma, :config_description, [
group: :pleroma, group: :pleroma,
key: :pools, key: :pools,
type: :group, type: :group,
description: "Advanced settings for `gun` workers pools", description: "Advanced settings for `Gun` workers pools",
children: children:
Enum.map([:federation, :media, :upload, :default], fn pool_name -> Enum.map([:federation, :media, :upload, :default], fn pool_name ->
%{ %{
@ -3369,7 +3369,7 @@ config :pleroma, :config_description, [
group: :pleroma, group: :pleroma,
key: :hackney_pools, key: :hackney_pools,
type: :group, type: :group,
description: "Advanced settings for `hackney` connections pools", description: "Advanced settings for `Hackney` connections pools",
children: [ children: [
%{ %{
key: :federation, key: :federation,
@ -3433,6 +3433,7 @@ config :pleroma, :config_description, [
%{ %{
group: :pleroma, group: :pleroma,
key: :restrict_unauthenticated, key: :restrict_unauthenticated,
label: "Restrict Unauthenticated",
type: :group, type: :group,
description: description:
"Disallow viewing timelines, user profiles and statuses for unauthenticated users.", "Disallow viewing timelines, user profiles and statuses for unauthenticated users.",
@ -3555,13 +3556,17 @@ config :pleroma, :config_description, [
children: [ children: [
%{ %{
key: "name", key: "name",
label: "Name",
type: :string, type: :string,
description: "Name of the installed primary frontend" description:
"Name of the installed primary frontend. Valid config must include both `Name` and `Reference` values."
}, },
%{ %{
key: "ref", key: "ref",
label: "Reference",
type: :string, type: :string,
description: "reference of the installed primary frontend to be used" description:
"Reference of the installed primary frontend to be used. Valid config must include both `Name` and `Reference` values."
} }
] ]
} }

View file

@ -1342,6 +1342,75 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
args: ["auto-orient", "strip", {"implode", "1"}, {"resize", "3840x1080>"}] args: ["auto-orient", "strip", {"implode", "1"}, {"resize", "3840x1080>"}]
] ]
end end
test "enables the welcome messages", %{conn: conn} do
clear_config([:welcome])
params = %{
"group" => ":pleroma",
"key" => ":welcome",
"value" => [
%{
"tuple" => [
":direct_message",
[
%{"tuple" => [":enabled", true]},
%{"tuple" => [":message", "Welcome to Pleroma!"]},
%{"tuple" => [":sender_nickname", "pleroma"]}
]
]
},
%{
"tuple" => [
":chat_message",
[
%{"tuple" => [":enabled", true]},
%{"tuple" => [":message", "Welcome to Pleroma!"]},
%{"tuple" => [":sender_nickname", "pleroma"]}
]
]
},
%{
"tuple" => [
":email",
[
%{"tuple" => [":enabled", true]},
%{"tuple" => [":sender", %{"tuple" => ["pleroma@dev.dev", "Pleroma"]}]},
%{"tuple" => [":subject", "Welcome to <%= instance_name %>!"]},
%{"tuple" => [":html", "Welcome to <%= instance_name %>!"]},
%{"tuple" => [":text", "Welcome to <%= instance_name %>!"]}
]
]
}
]
}
refute Pleroma.User.WelcomeEmail.enabled?()
refute Pleroma.User.WelcomeMessage.enabled?()
refute Pleroma.User.WelcomeChatMessage.enabled?()
res =
assert conn
|> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/config", %{"configs" => [params]})
|> json_response_and_validate_schema(200)
assert Pleroma.User.WelcomeEmail.enabled?()
assert Pleroma.User.WelcomeMessage.enabled?()
assert Pleroma.User.WelcomeChatMessage.enabled?()
assert res == %{
"configs" => [
%{
"db" => [":direct_message", ":chat_message", ":email"],
"group" => ":pleroma",
"key" => ":welcome",
"value" => params["value"]
}
],
"need_reboot" => false
}
end
end end
describe "GET /api/pleroma/admin/config/descriptions" do describe "GET /api/pleroma/admin/config/descriptions" do