lameNameCheck config

lila3
Thibault Duplessis 2019-12-10 18:44:12 -06:00
parent 3cf6d739a6
commit 28faf036e7
5 changed files with 11 additions and 3 deletions

View File

@ -217,6 +217,7 @@ security {
recaptcha = ${recaptcha}
mailgun = ${mailgun}
ipintel.email = "-"
lame_name_check = true
}
oauth {
mongodb {

View File

@ -58,5 +58,6 @@ object config {
def strLoader[A](f: String => A): ConfigLoader[A] = ConfigLoader(_.getString) map f
def intLoader[A](f: Int => A): ConfigLoader[A] = ConfigLoader(_.getInt) map f
def boolLoader[A](f: Boolean => A): ConfigLoader[A] = ConfigLoader(_.getBoolean) map f
def durationLoader[A](f: FiniteDuration => A): ConfigLoader[A] = ConfigLoader(_.duration) map f
}

View File

@ -12,7 +12,8 @@ final class DataForm(
userRepo: UserRepo,
val captcher: lila.hub.actors.Captcher,
authenticator: lila.user.Authenticator,
emailValidator: EmailAddressValidator
emailValidator: EmailAddressValidator,
lameNameCheck: LameNameCheck
) extends lila.hub.CaptchedForm {
import DataForm._
@ -61,7 +62,7 @@ final class DataForm(
regex = User.newUsernameChars,
error = "usernameCharsInvalid"
)
).verifying("usernameUnacceptable", u => !LameName.username(u))
).verifying("usernameUnacceptable", u => !lameNameCheck.value || !LameName.username(u))
.verifying("usernameAlreadyUsed", u => !userRepo.nameExists(u).awaitSeconds(4))
private val agreementBool = boolean.verifying(b => b)

View File

@ -24,7 +24,8 @@ private final class SecurityConfig(
@ConfigName("check_mail_api") val checkMail: CheckMail,
val recaptcha: Recaptcha.Config,
val mailgun: Mailgun.Config,
@ConfigName("ipintel.email") val ipIntelEmail: EmailAddress
@ConfigName("ipintel.email") val ipIntelEmail: EmailAddress,
@ConfigName("lame_name_check") val lameNameCheck: LameNameCheck
)
private object SecurityConfig {
@ -67,5 +68,7 @@ private object SecurityConfig {
)
implicit val checkMailLoader = AutoConfig.loader[CheckMail]
implicit val lameNameCheckLoader = boolLoader(LameNameCheck.apply)
implicit val loader = AutoConfig.loader[SecurityConfig]
}

View File

@ -29,6 +29,8 @@ case class IpAndFp(ip: IpAddress, fp: Option[String], user: User.ID)
case class RecaptchaPublicConfig(key: String, enabled: Boolean)
case class LameNameCheck(value: Boolean) extends AnyVal
case class Signup(
user: User,
email: EmailAddress,