diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2020-08-07 09:48:34 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-08-07 09:48:34 +0300 |
commit | 8e90cc58e7ec3f19f03d049ff541750f1ab4774e (patch) | |
tree | be0a4346827a52fcdfe034c489ede989320a24d2 /lib/pleroma/user.ex | |
parent | 6e6276b4f8a7a46c6038480f6a842339c5214d1c (diff) | |
parent | b9ebb55d2aabdf4c99b05efab9d4ad31b25f888d (diff) | |
download | pleroma-8e90cc58e7ec3f19f03d049ff541750f1ab4774e.tar.gz |
Merge branch 'develop' into feature/update-welcome-setting-in-description
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 0c1fab223..09e606b37 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -676,10 +676,19 @@ defmodule Pleroma.User do |> validate_required([:name, :nickname, :password, :password_confirmation]) |> validate_confirmation(:password) |> unique_constraint(:email) + |> validate_format(:email, @email_regex) + |> validate_change(:email, fn :email, email -> + valid? = + Config.get([User, :email_blacklist]) + |> Enum.all?(fn blacklisted_domain -> + !String.ends_with?(email, ["@" <> blacklisted_domain, "." <> blacklisted_domain]) + end) + + if valid?, do: [], else: [email: "Invalid email"] + end) |> unique_constraint(:nickname) |> validate_exclusion(:nickname, Config.get([User, :restricted_nicknames])) |> validate_format(:nickname, local_nickname_regex()) - |> validate_format(:email, @email_regex) |> validate_length(:bio, max: bio_limit) |> validate_length(:name, min: 1, max: name_limit) |> validate_length(:registration_reason, max: reason_limit) |