forked from AkkomaGang/akkoma
Merge branch 'fix/mrf-simple-welcome-chats' into 'develop'
Ensure we only apply media_nsfw simple policy on parsable objects Closes #2133 See merge request pleroma/pleroma!2992
This commit is contained in:
commit
5c4ff5c73c
4 changed files with 48 additions and 4 deletions
|
@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
- Renamed `:await_up_timeout` in `:connections_pool` namespace to `:connect_timeout`, old name is deprecated.
|
- Renamed `:await_up_timeout` in `:connections_pool` namespace to `:connect_timeout`, old name is deprecated.
|
||||||
- Renamed `:timeout` in `pools` namespace to `:recv_timeout`, old name is deprecated.
|
- Renamed `:timeout` in `pools` namespace to `:recv_timeout`, old name is deprecated.
|
||||||
|
- Minimum lifetime for ephmeral activities changed to 10 minutes and made configurable (`:min_lifetime` option).
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
@ -18,8 +19,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- Removed `:managed_config` option. In practice, it was accidentally removed with 2.0.0 release when frontends were
|
- Removed `:managed_config` option. In practice, it was accidentally removed with 2.0.0 release when frontends were
|
||||||
switched to a new configuration mechanism, however it was not officially removed until now.
|
switched to a new configuration mechanism, however it was not officially removed until now.
|
||||||
|
|
||||||
### Changed
|
## unreleased-patch - ???
|
||||||
- Minimum lifetime for ephmeral activities changed to 10 minutes and made configurable (`:min_lifetime` option).
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Welcome Chat messages preventing user registration with MRF Simple Policy applied to the local instance
|
||||||
|
|
||||||
## [2.1.1] - 2020-09-08
|
## [2.1.1] - 2020-09-08
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,8 @@ defp check_media_nsfw(
|
||||||
"type" => "Create",
|
"type" => "Create",
|
||||||
"object" => child_object
|
"object" => child_object
|
||||||
} = object
|
} = object
|
||||||
) do
|
)
|
||||||
|
when is_map(child_object) do
|
||||||
media_nsfw =
|
media_nsfw =
|
||||||
Config.get([:mrf_simple, :media_nsfw])
|
Config.get([:mrf_simple, :media_nsfw])
|
||||||
|> MRF.subdomains_regex()
|
|> MRF.subdomains_regex()
|
||||||
|
|
|
@ -309,7 +309,7 @@ def fix_url(object), do: object
|
||||||
def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do
|
def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do
|
||||||
emoji =
|
emoji =
|
||||||
tags
|
tags
|
||||||
|> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end)
|
|> Enum.filter(fn data -> is_map(data) and data["type"] == "Emoji" and data["icon"] end)
|
||||||
|> Enum.reduce(%{}, fn data, mapping ->
|
|> Enum.reduce(%{}, fn data, mapping ->
|
||||||
name = String.trim(data["name"], ":")
|
name = String.trim(data["name"], ":")
|
||||||
|
|
||||||
|
|
|
@ -440,6 +440,45 @@ test "it sends a welcome chat message if it is set" do
|
||||||
assert activity.actor == welcome_user.ap_id
|
assert activity.actor == welcome_user.ap_id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
setup do:
|
||||||
|
clear_config(:mrf_simple,
|
||||||
|
media_removal: [],
|
||||||
|
media_nsfw: [],
|
||||||
|
federated_timeline_removal: [],
|
||||||
|
report_removal: [],
|
||||||
|
reject: [],
|
||||||
|
followers_only: [],
|
||||||
|
accept: [],
|
||||||
|
avatar_removal: [],
|
||||||
|
banner_removal: [],
|
||||||
|
reject_deletes: []
|
||||||
|
)
|
||||||
|
|
||||||
|
setup do:
|
||||||
|
clear_config(:mrf,
|
||||||
|
policies: [
|
||||||
|
Pleroma.Web.ActivityPub.MRF.SimplePolicy
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
test "it sends a welcome chat message when Simple policy applied to local instance" do
|
||||||
|
Pleroma.Config.put([:mrf_simple, :media_nsfw], ["localhost"])
|
||||||
|
|
||||||
|
welcome_user = insert(:user)
|
||||||
|
Pleroma.Config.put([:welcome, :chat_message, :enabled], true)
|
||||||
|
Pleroma.Config.put([:welcome, :chat_message, :sender_nickname], welcome_user.nickname)
|
||||||
|
Pleroma.Config.put([:welcome, :chat_message, :message], "Hello, this is a chat message")
|
||||||
|
|
||||||
|
cng = User.register_changeset(%User{}, @full_user_data)
|
||||||
|
{:ok, registered_user} = User.register(cng)
|
||||||
|
ObanHelpers.perform_all()
|
||||||
|
|
||||||
|
activity = Repo.one(Pleroma.Activity)
|
||||||
|
assert registered_user.ap_id in activity.recipients
|
||||||
|
assert Object.normalize(activity).data["content"] =~ "chat message"
|
||||||
|
assert activity.actor == welcome_user.ap_id
|
||||||
|
end
|
||||||
|
|
||||||
test "it sends a welcome email message if it is set" do
|
test "it sends a welcome email message if it is set" do
|
||||||
welcome_user = insert(:user)
|
welcome_user = insert(:user)
|
||||||
Pleroma.Config.put([:welcome, :email, :enabled], true)
|
Pleroma.Config.put([:welcome, :email, :enabled], true)
|
||||||
|
|
Loading…
Reference in a new issue