in configTools/src/main/scala/com/gu/janus/Validation.scala [46:67]
def permissionUniqueness(janusData: JanusData): ValidationResult = {
val allPermissions = janusData.access.defaultPermissions ++
janusData.access.userAccess.values.flatten.toSet ++
janusData.admin.userAccess.values.flatten.toSet ++
janusData.support.supportAccess
val duplicates = allPermissions
.groupBy(_.id)
.filter { case (_, permissions) =>
permissions.size > 1
}
val errors = duplicates.map { case (id, permissions) =>
val account =
permissions.headOption.map(_.account.name).getOrElse("Unknown account")
val label = permissions.headOption.map(_.label).getOrElse("Unknown label")
val names = permissions.map(_.description)
s"Policy id $id is not unique, there are ${permissions.size} policies in account `$account` called `$label` (${names
.mkString("`", ", ", "`")})"
}.toList
error(errors)
}