private Boolean checkTopoPermission(String principal, String user, Set<String> userGroups, Map<String, Object> topoConf, String userConfigKey, String groupConfigKey) { Set<String> configuredUsers = new HashSet<>(); if (topoConf.containsKey(userConfigKey)) { configuredUsers.addAll((Collection<String>) topoConf.get(userConfigKey)); } if (configuredUsers.contains(principal) || configuredUsers.contains(user)) { return true; } Set<String> configuredGroups = new HashSet<>(); if (topoConf.containsKey(groupConfigKey) && topoConf.get(groupConfigKey) != null) { configuredGroups.addAll((Collection<String>) topoConf.get(groupConfigKey)); } return checkUserGroupAllowed(userGroups, configuredGroups); }
if (admins.contains(principal) || admins.contains(user) || checkUserGroupAllowed(userGroups, adminsGroups)) { return true; if (checkTopoPermission(principal, user, userGroups, topoConf, Config.TOPOLOGY_USERS, Config.TOPOLOGY_GROUPS)) { return true;