protected void getRecursiveRoles(Set<String> xRoles, String roleName) { Role role = getRoleCache().get(roleName); if (role != null) { if (role.getIncludedRoles().size() > 0) { for (String name: role.getIncludedRoles()) { getRecursiveRoles(xRoles, name); } } xRoles.add(roleName); } }
protected void getRecursivePermissions(Map<String, Permission> xPerms, String roleName) { Role role = getRoleCache().get(roleName); if (role != null) { if (role.getIncludedRoles().size() > 0) { for (String name: role.getIncludedRoles()) { getRecursivePermissions(xPerms, name); } } Collection<Permission> perms = role.getPermissions().values(); if (perms.size() > 0) { for (Permission perm: perms) { Permission xPerm = xPerms.get(perm.getResource()); if (xPerm == null) { xPerm = new Permission(perm.getResource()); xPerms.put(perm.getResource(), xPerm); } for (Permission.Value p: perm.getPermissions()) { xPerm.addPermission(p); } } } } }
/** * {@inheritDoc} */ @Override public String toString() { return "Role [name=" + name + ", version=" + this.getVersion() + ", created at=" + getCreatedAt() + ", by=" + getCreatedBy() + ", description=" + description + ", permissions=" + getPermissions() + ", includedRoles=" + getIncludedRoles() + "]"; }
@Override public void write(ObjectDataOutput out, Role xRole) throws IOException { super.writeEntity(out, xRole); out.writeUTF(xRole.getName()); out.writeUTF(xRole.getDescription()); // write permissions and roles List<Permission> perms = new ArrayList<Permission>(xRole.getPermissions().values()); out.writeObject(perms); out.writeObject(xRole.getIncludedRoles()); }