|
|
@@ -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: "Email domain is blacklisted"] |
|
|
|
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) |
|
|
|