docs: def GetNonExpiredApprovers(self):
      """Returns a list of usernames of approvers who approved this approval."""
  
      lifetime = rdfvalue.Duration(
          self.Get(self.Schema.LIFETIME) or config.CONFIG["ACL.token_expiry"])
  
      # Check that there are enough approvers.
      #
      # TODO(user): approvals have to be opened with
      # age=aff4.ALL_TIMES because versioning is used to store lists
      # of approvers. This doesn't seem right and has to be fixed.
      approvers = set()
      now = rdfvalue.RDFDatetime.Now()
      for approver in self.GetValuesForAttribute(self.Schema.APPROVER):
        if approver.age + lifetime > now:
          approvers.add(utils.SmartStr(approver))
  
      return list(approvers)