email domain blacklist live setting

This commit is contained in:
Thibault Duplessis 2018-03-10 09:07:35 -05:00
parent fd263e1196
commit a129c8cddb
3 changed files with 12 additions and 1 deletions

View file

@ -10,6 +10,7 @@ object Dev extends LilaController {
private lazy val settingsList = List[lila.memo.SettingStore[_]](
Env.security.ugcArmedSetting,
Env.security.emailBlacklistSetting,
Env.irwin.irwinModeSetting,
Env.api.assetVersionSetting,
Env.explorer.indexFlowSetting,

View file

@ -5,6 +5,7 @@ import play.api.Play.current
final class DisposableEmailDomain(
providerUrl: String,
blacklistStr: () => String,
busOption: Option[lila.common.Bus]
) {
@ -41,7 +42,9 @@ final class DisposableEmailDomain(
}
def apply(domain: String) =
!DisposableEmailDomain.mainstreamDomains(domain.toLowerCase) && domains(domain)
!DisposableEmailDomain.mainstreamDomains(domain.toLowerCase) && {
domains.contains(domain) || blacklistStr().split(' ').contains(domain)
}
}
private object DisposableEmailDomain {

View file

@ -148,8 +148,15 @@ final class Env(
lazy val emailAddressValidator = new EmailAddressValidator(disposableEmailDomain)
lazy val emailBlacklistSetting = settingStore[String](
"emailBlacklist",
default = "",
text = "Blacklisted email domains separated by a space".some
)
private lazy val disposableEmailDomain = new DisposableEmailDomain(
providerUrl = DisposableEmailProviderUrl,
blacklistStr = emailBlacklistSetting.get,
busOption = system.lilaBus.some
)