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,13 +361,21 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]], params: Map[String, Seq[String]],
messages: Messages messages: Messages
): Option[String] = { ): Option[String] = {
getAccountByMailAddress(value, true) val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
.filter { x => if (extraMailAddresses.find {
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName) case (k, v) =>
} v.contains(value)
.map { _ => }.isDefined) {
"Mail address is already registered." Some("These mail addresses are duplicated.")
} } else {
getAccountByMailAddress(value, true)
.filter { x =>
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
}
.map { _ =>
"Mail address is already registered."
}
}
} }
} }
@@ -378,13 +386,21 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]], params: Map[String, Seq[String]],
messages: Messages messages: Messages
): Option[String] = { ): Option[String] = {
getAccountByMailAddress(value, true) val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
.filter { x => if (Some(value) == params.optionValue("mailAddress") || extraMailAddresses.count {
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName) case (k, v) =>
} v.contains(value)
.map { _ => } > 1) {
"Mail address is already registered." Some("These mail addresses are duplicated.")
} } else {
getAccountByMailAddress(value, true)
.filter { x =>
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
}
.map { _ =>
"Mail address is already registered."
}
}
} }
} }