def permissionUniqueness()

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)
  }