mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 14:35:52 +01:00
Check duplicate across primary/extra mail addresses.
This commit is contained in:
@@ -361,6 +361,13 @@ trait AccountManagementControllerBase extends ControllerBase {
|
|||||||
params: Map[String, Seq[String]],
|
params: Map[String, Seq[String]],
|
||||||
messages: Messages
|
messages: Messages
|
||||||
): Option[String] = {
|
): 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)
|
getAccountByMailAddress(value, true)
|
||||||
.filter { x =>
|
.filter { x =>
|
||||||
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
|
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() {
|
protected def uniqueExtraMailAddress(paramName: String = ""): Constraint = new Constraint() {
|
||||||
override def validate(
|
override def validate(
|
||||||
@@ -378,6 +386,13 @@ trait AccountManagementControllerBase extends ControllerBase {
|
|||||||
params: Map[String, Seq[String]],
|
params: Map[String, Seq[String]],
|
||||||
messages: Messages
|
messages: Messages
|
||||||
): Option[String] = {
|
): 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)
|
getAccountByMailAddress(value, true)
|
||||||
.filter { x =>
|
.filter { x =>
|
||||||
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
|
if (paramName.isEmpty) true else Some(x.userName) != params.optionValue(paramName)
|
||||||
@@ -387,6 +402,7 @@ trait AccountManagementControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val allReservedNames = Set(
|
val allReservedNames = Set(
|
||||||
"git",
|
"git",
|
||||||
|
|||||||
Reference in New Issue
Block a user