private static Collection<Privilege> createPrivileges(Group group, Set<Group> visitedGroups) { visitedGroups.add(group); Collection<Privilege> grantedList = new ArrayList<Privilege>(); Set<Group> groups = group.getIncludedGroups(); for (Group persistGroup : groups) { if (!visitedGroups.contains(persistGroup)) { Collection<Privilege> privileges = createPrivileges(persistGroup, visitedGroups); SimpleGroup simpleGroup = new SimpleGroup(persistGroup.getName(), persistGroup.getDescription(), privileges); grantedList.add(simpleGroup); } } Set<String> privileges = group.getPrivileges(); if (privileges != null) { for (String privilege : privileges) { grantedList.add(Privileges.valueOf(privilege)); } } return grantedList; } }
private static Collection<Privilege> createPrivileges(Group group, Set<Group> visitedGroups) { visitedGroups.add(group); Collection<Privilege> grantedList = new ArrayList<Privilege>(); Set<Group> groups = group.getIncludedGroups(); for (Group persistGroup : groups) { if (!visitedGroups.contains(persistGroup)) { Collection<Privilege> privileges = createPrivileges(persistGroup, visitedGroups); SimpleGroup simpleGroup = new SimpleGroup(persistGroup.getName(), persistGroup.getDescription(), privileges); grantedList.add(simpleGroup); } } Set<String> privileges = group.getPrivileges(); if (privileges != null) { for (String privilege : privileges) { grantedList.add(Privileges.valueOf(privilege)); } } return grantedList; } }
private static Collection<Privilege> createPrivileges(Group group, Set<Group> visitedGroups) { visitedGroups.add(group); Collection<Privilege> grantedList = new ArrayList<Privilege>(); Set<Group> groups = group.getIncludedGroups(); for (Group persistGroup : groups) { if (!visitedGroups.contains(persistGroup)) { Collection<Privilege> privileges = createPrivileges(persistGroup, visitedGroups); SimpleGroup simpleGroup = new SimpleGroup(persistGroup.getName(), persistGroup.getDescription(), privileges); grantedList.add(simpleGroup); } } Set<String> privileges = group.getPrivileges(); if (privileges != null) { for (String privilege : privileges) { grantedList.add(Privileges.valueOf(privilege)); } } return grantedList; } }
@Override public void updateGroup(String name, org.openl.rules.security.Group group) { Group persistGroup = groupDao.getGroupByName(name); persistGroup.setName(group.getName()); persistGroup.setDescription(group.getDescription()); Set<Group> includedGroups = new HashSet<Group>(); Set<String> privileges = new HashSet<String>(); for (Privilege privilege : group.getPrivileges()) { String privilegeName = privilege.getName(); if (privilege instanceof org.openl.rules.security.Group) { Group includedGroup = groupDao.getGroupByName(privilegeName); if (!persistGroup.equals(includedGroup)) { // Persisting group should not include itself includedGroups.add(includedGroup); } else { // Save all privileges of itself persisting group Set<String> includedPrivileges = includedGroup.getPrivileges(); if (includedPrivileges != null) { privileges.addAll(includedPrivileges); } } } else { privileges.add(privilegeName); } } persistGroup.setIncludedGroups(!includedGroups.isEmpty() ? includedGroups : null); persistGroup.setPrivileges(privileges); groupDao.update(persistGroup); }
@Override public void updateGroup(String name, org.openl.rules.security.Group group) { Group persistGroup = groupDao.getGroupByName(name); persistGroup.setName(group.getName()); persistGroup.setDescription(group.getDescription()); Set<Group> includedGroups = new HashSet<Group>(); Set<String> privileges = new HashSet<String>(); for (Privilege privilege : group.getPrivileges()) { String privilegeName = privilege.getName(); if (privilege instanceof org.openl.rules.security.Group) { Group includedGroup = groupDao.getGroupByName(privilegeName); if (!persistGroup.equals(includedGroup)) { // Persisting group should not include itself includedGroups.add(includedGroup); } else { // Save all privileges of itself persisting group Set<String> includedPrivileges = includedGroup.getPrivileges(); if (includedPrivileges != null) { privileges.addAll(includedPrivileges); } } } else { privileges.add(privilegeName); } } persistGroup.setIncludedGroups(!includedGroups.isEmpty() ? includedGroups : null); persistGroup.setPrivileges(privileges); groupDao.update(persistGroup); }