in src/main/java/com/googlesource/gerrit/plugins/quota/AccountLimitsFinder.java [54:76]
public Optional<RateLimit> firstMatching(AccountLimitsConfig.Type type, IdentifiedUser user) {
Optional<Map<String, AccountLimitsConfig.RateLimit>> limits = getRatelimits(type);
if (limits.isPresent()) {
GroupMembership memberShip = user.getEffectiveGroups();
for (String groupName : limits.get().keySet()) {
try {
GroupResource group =
groupsCollection.parse(TopLevelResource.INSTANCE, IdString.fromDecoded(groupName));
Optional<GroupDescription.Internal> maybeInternalGroup = group.asInternalGroup();
if (!maybeInternalGroup.isPresent()) {
log.debug("Ignoring limits for non-internal group ''{}'' in quota.config", groupName);
} else if (memberShip.contains(maybeInternalGroup.get().getGroupUUID())) {
return Optional.ofNullable(limits.get().get(groupName));
}
} catch (ResourceNotFoundException e) {
log.debug("Ignoring limits for unknown group ''{}'' in quota.config", groupName);
} catch (AuthException e) {
log.debug("Ignoring limits for non-visible group ''{}'' in quota.config", groupName);
}
}
}
return Optional.empty();
}