Check duplicate across primary/extra mail addresses.

This commit is contained in:
KOUNOIKE Yuusuke
2018-04-15 13:28:03 +09:00
parent 243833c3fc
commit 884d4935cc

View File

@@ -361,6 +361,13 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]],
messages: Messages
): Option[String] = {
val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
if (extraMailAddresses.find {
case (k, v) =>
v.contains(value)
}.isDefined) {
Some("These mail addresses are duplicated.")
} else {
getAccountByMailAddress(value, true)
.filter { x =>
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
@@ -370,6 +377,7 @@ trait AccountManagementControllerBase extends ControllerBase {
}
}
}
}
protected def uniqueExtraMailAddress(paramName: String = ""): Constraint = new Constraint() {
override def validate(
@@ -378,6 +386,13 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]],
messages: Messages
): Option[String] = {
val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
if (Some(value) == params.optionValue("mailAddress") || extraMailAddresses.count {
case (k, v) =>
v.contains(value)
} > 1) {
Some("These mail addresses are duplicated.")
} else {
getAccountByMailAddress(value, true)
.filter { x =>
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
@@ -387,6 +402,7 @@ trait AccountManagementControllerBase extends ControllerBase {
}
}
}
}
val allReservedNames = Set(
"git",