package tc.oc.api.util; import java.util.Collection; import java.util.HashMap; import java.util.Map; public final class Permissions { private Permissions() {} public static final String CONSOLE = "ocn.console"; public static final String LOGIN = "ocn.login"; public static final String STAFF = "projectares.staff"; public static final String OBSERVER = "ocn.observer"; public static final String PARTICIPANT = "ocn.participant"; public static final String MAPMAKER = "ocn.mapmaker"; public static final String DEVELOPER = "ocn.developer"; public static final String MAPDEV = "pgm.mapdev"; public static final String MAPERRORS = "pgm.maperrors"; /** * Merge the given by-realm permissions into a single set of permissions using the given (ordered) realms * @param realms Effective realms, in application order (later realms will override earlier ones) * @param permsByRealm Permissions, grouped by realm * @return Effective permissions */ public static Map<String, Boolean> mergePermissions(Collection<String> realms, Map<String, Map<String, Boolean>> permsByRealm) { Map<String, Boolean> effectivePerms = new HashMap<>(); for(String realm : realms) { Map<String, Boolean> perms = permsByRealm.get(realm); if(perms != null) { effectivePerms.putAll(perms); } } return effectivePerms; } }