public void addPermission (String permName) { permissions.add (Permission.valueOf(permName)); }
public void removePermission (String permName) { permissions.remove (Permission.valueOf(permName)); }
public boolean hasPermission (String permName) { return permName != null && (getActivePermissions().contains(Permission.valueOf(permName))); }
private Set<Permission> getActivePermissions (Realm r) { return r != null ? permissions.stream().map( p -> Permission.valueOf(r.getName() + ":" + p.getName()) ).collect(Collectors.toSet()) : permissions; } }
public Set<Permission> getActivePermissions() { Set<Permission> perm = new LinkedHashSet<>(); perm.add(Permission.valueOf(getFQRN())); perm.addAll(getActivePermissions(getRealm())); for (Role r = this; r.getParent() != null; ) { r = r.getParent(); perm.addAll(r.getActivePermissions(getRealm())); } return perm; }
@Override protected Component buildAndBindCustomComponent(String propertyId) { List<Validator> validators = getFieldFactory().getValidators(propertyId); if ("permissions".equals(propertyId)) { CheckBoxGroup<Permission> f = new CheckBoxGroup("Permissions"); List<SysConfig> sysconfigs = ((RolesHelper)getHelper()).getPermissions(); List<Permission> allPermissions = new ArrayList<>(); //convert SysConfigs to Permissions for (SysConfig sys : sysconfigs) { Permission p = Permission.valueOf(sys.getId().substring(5)); allPermissions.add(p); } f.setItems(allPermissions); f.setItemCaptionGenerator((ItemCaptionGenerator<Permission>) item -> sysconfigs.get(allPermissions.indexOf(item)).getId().substring(5) + " : " + //remove "perm." prefix sysconfigs.get(allPermissions.indexOf(item)).getValue()); Binder.BindingBuilder builder = getBinder().forField(f); validators.forEach(builder::withValidator); builder.bind(propertyId); return f; } return null; }
private Role createRole (DB db, Realm realm, String name, String... permissions) { Role role = new Role(realm, name); Set<Permission> perms = role.getPermissions(); for (String p : permissions) perms.add(Permission.valueOf(p)); db.save(role); return role; } }
@Override public void exec(CLIContext cli, String[] args) throws Exception { if (args.length < 2) { cli.println("Usage: addpermission <role> <permission 1> <permission 2> ... <permission n>"); return; } try (DB db = new DB()) { db.open(); db.beginTransaction(); RoleManager rm = new RoleManager(db); Role role = null; if (rm.getRoleByName(args[1]) == null) { role = new Role(args[1]); Set<Permission> perms = role.getPermissions(); for (int i = 2; i < args.length; i++) perms.add(Permission.valueOf(args[i])); db.save(role); } db.commit(); cli.println (role != null ? "Role created " + role.getName() : " Role already exists"); } catch (Exception e) { cli.println (e.getMessage()); } } }
@Override public void exec(CLIContext cli, String[] args) throws Exception { if (args.length < 2) { cli.println("Usage: addrole <role> <permission 1> <permission 2> ... <permission n>"); return; } try (DB db = new DB()) { db.open(); db.beginTransaction(); RoleManager rm = new RoleManager(db); Role role = null; if (rm.getRoleByName(args[1]) == null) { role = new Role(args[1]); Set<Permission> perms = role.getPermissions(); for (int i = 2; i < args.length; i++) perms.add(Permission.valueOf(args[i])); db.save(role); } db.commit(); cli.println (role != null ? "Role created " + role.getName() : " Role already exists"); } catch (Exception e) { cli.println (e.getMessage()); } } }