package stream.flarebot.flarebot.permissions; import org.eclipse.jetty.util.ConcurrentHashSet; public class Group { private final ConcurrentHashSet<String> permissions = new ConcurrentHashSet<>(); private String name; private String roleId; private Group() { } Group(String name) { this.name = name; } public ConcurrentHashSet<String> getPermissions() { return permissions; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean addPermission(String permission) { return permissions.add(permission); } public boolean removePermission(String permission) { return permissions.remove(permission); } public Permission.Reply hasPermission(Permission permission) { for (String s : permissions) { if (new PermissionNode(s.substring(s.startsWith("-") ? 1 : 0)).test(permission.getPermission())) { if (s.startsWith("-")) return Permission.Reply.DENY; return Permission.Reply.ALLOW; } } return Permission.Reply.NEUTRAL; } public void linkRole(String roleId) { this.roleId = roleId; } public String getRoleId() { return roleId; } }