|
|
|
@ -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)
|
|
|
|
|