}
HashSet<MembershipImpl> memberships = new HashSet<MembershipImpl>();
for (Role role : roles) {
Group g = ((GroupDAOImpl) orgService.getGroupHandler()).convertGroup(role.getGroup());
if (isCreateMembership(role.getRoleType().getName(), g.getId())) {
MembershipImpl m = new MembershipImpl();
m.setGroupId(g.getId());
m.setUserName(role.getUser().getId());
// LDAP store may return raw membership type as role type
if (role.getRoleType().getName().equals("JBOSS_IDENTITY_MEMBERSHIP")) {
m.setMembershipType(orgService.getConfiguration().getAssociationMembershipType());
} else {
m.setMembershipType(role.getRoleType().getName());
}
memberships.add(m);
}
}
if (isAssociationMapped()) {
Collection<org.picketlink.idm.api.Group> groups = new HashSet();
try {
groups = getIdentitySession().getRelationshipManager().findAssociatedGroups(userName, null);
} catch (Exception e) {
// TODO:
handleException("Identity operation error: ", e);
}
for (org.picketlink.idm.api.Group group : groups) {
MembershipImpl m = new MembershipImpl();
Group g = ((GroupDAOImpl) orgService.getGroupHandler()).convertGroup(group);
m.setGroupId(g.getId());
m.setUserName(userName);
m.setMembershipType(getAssociationMapping());
memberships.add(m);
}