private[logic] def humanReportStatus()

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
  }