diff options
author | Sean King <seanking2919@protonmail.com> | 2022-07-05 20:36:47 -0600 |
---|---|---|
committer | Sean King <seanking2919@protonmail.com> | 2022-07-05 20:36:47 -0600 |
commit | 0d4aceb9b0c6d742b481c08b88ba50d67c65c091 (patch) | |
tree | a2a9a88f607c61d0bf082b9f3aeda070374db3a4 /lib | |
parent | 29f4ab640b0269fc7751fca7c24cda5be912d1e5 (diff) | |
download | pleroma-0d4aceb9b0c6d742b481c08b88ba50d67c65c091.tar.gz pleroma-0d4aceb9b0c6d742b481c08b88ba50d67c65c091.zip |
Make checking blacklisted domains and restricted nicknames case-insenstive
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 747a83e8d..47c51469e 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -758,13 +758,26 @@ defmodule Pleroma.User do valid? = Config.get([User, :email_blacklist]) |> Enum.all?(fn blacklisted_domain -> - !String.ends_with?(email, ["@" <> blacklisted_domain, "." <> blacklisted_domain]) + blacklisted_domain_downcase = String.downcase(blacklisted_domain) + + !String.ends_with?(String.downcase(email), [ + "@" <> blacklisted_domain_downcase, + "." <> blacklisted_domain_downcase + ]) end) if valid?, do: [], else: [email: "Invalid email"] end) |> unique_constraint(:nickname) - |> validate_exclusion(:nickname, Config.get([User, :restricted_nicknames])) + |> validate_change(:nickname, fn :nickname, nickname -> + valid? = + Config.get([User, :restricted_nicknames]) + |> Enum.all?(fn restricted_nickname -> + String.downcase(nickname) != String.downcase(restricted_nickname) + end) + + if valid?, do: [], else: [nickname: "Invalid nickname"] + end) |> validate_format(:nickname, local_nickname_regex()) |> validate_length(:bio, max: bio_limit) |> validate_length(:name, min: 1, max: name_limit) |