lockoutRemaining static method

Duration? lockoutRemaining(
  1. String realmUri,
  2. String authId,
  3. RealmLimitSettings limits
)

Implementation

static Duration? lockoutRemaining(
  String realmUri,
  String authId,
  RealmLimitSettings limits,
) {
  if (!_trackingEnabled(limits)) {
    _realmFailures.remove(realmUri);
    return null;
  }
  final now = DateTime.now();
  _removeExpiredRecords(realmUri, now);
  final realmMap = _realmFailures[realmUri];
  final record = realmMap?[_authIdKey(authId)];
  final lockedUntil = record?.lockedUntil;
  if (lockedUntil == null) {
    return null;
  }
  if (lockedUntil.isAfter(now)) {
    return lockedUntil.difference(now);
  }
  realmMap!.remove(_authIdKey(authId));
  if (realmMap.isEmpty) {
    _realmFailures.remove(realmUri);
  }
  return null;
}