in hq/app/logic/CredentialsReportDisplay.scala [49:70]
private[logic] def humanReportStatus(cred: IAMCredential): ReportStatus = {
val keys = List(accessKey1Details(cred), accessKey2Details(cred))
//TODO: Scala 2.13 has Option builder `when` which is a nicer syntax than Some(...).filter
val redStatusReasons: Seq[ReportStatusReason] = Seq(
Some(MissingMfa).filterNot(_ => cred.mfaActive),
Some(OutdatedKey).filter(_ => VulnerableAccessKeys.hasOutdatedHumanKeyIncludingDisabled(keys))
).flatten
val amberStatusReasons: Seq[ReportStatusReason] = Seq(
Some(ActiveAccessKey).filter(_ => keys.exists(_.keyStatus == AccessKeyEnabled)),
Some(MissingUsernameTag).filterNot(_ => IamUnrecognisedUsers.isTaggedForUnrecognisedUser(cred.tags))
).flatten
if (redStatusReasons.nonEmpty)
Red(redStatusReasons)
else if (amberStatusReasons.nonEmpty)
Amber(amberStatusReasons)
else if (Days.daysBetween(lastActivityDate(cred).getOrElse(DateTime.now), DateTime.now).getDays > 365)
Blue
else Green
}