public boolean addRole(String roleType, String group, String groupType) { if (roleType == null || "".equals(roleType) || group == null || "".equals(group) || groupType == null || "".equals(groupType)) return false; if (isLoggedIn()) { return activeRoles.add(new SimpleRole(new SimpleRoleType(roleType), user, new SimpleGroup(group, groupType))); } else { List<String> roleTypes = null; Map<String, List<String>> groupTypes = preAuthenticationRoles.get(group); if (groupTypes != null) { roleTypes = groupTypes.get(groupType); } else { groupTypes = new HashMap<String, List<String>>(); preAuthenticationRoles.put(group, groupTypes); } if (roleTypes == null) { roleTypes = new ArrayList<String>(); groupTypes.put(groupType, roleTypes); } return roleTypes.add(roleType); } }
public boolean hasRole(User user, Group group, RoleType roleType) throws IdentityException { checkNotNullArgument(roleType, "RoleType"); checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); if (cache != null) { Role role = new SimpleRole(roleType, user, group); role = cache.getRole(cacheNS, role); if (role != null) { return true; } } //TODO: does separate hasRelationship method in IdentityStore makes sense? Set<IdentityObjectRelationship> rels = getRepository().resolveRelationships(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE); for (IdentityObjectRelationship rel : rels) { if (rel.getType().getName().equals(ROLE.getName()) && rel.getName() != null && rel.getName().equals(roleType.getName())) { if (cache != null) { Role role = new SimpleRole(roleType, user, group); cache.putRole(cacheNS, role); } return true; } } return false; }
public Role createRole(RoleType roleType, User user, Group group) throws IdentityException { checkNotNullArgument(roleType, "RoleType"); checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); //TODO: add createRoleType switch to the API Role _role = new SimpleRole(roleType, user, group); preCreate(_role); IdentityObjectRelationship rel = getRepository().createRelationship(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE, roleType.getName(), false); Role role = null; if (rel != null) { role = new SimpleRole(roleType, user, group); } if (cache != null) { cache.invalidateAllQueries(cacheNS); cache.invalidateAllSearches(cacheNS); cache.putRole(cacheNS, role); } postCreate(_role); return role; }
Role role = new SimpleRole(roleType, user, group); role = cache.getRole(cacheNS, role); if (role != null) Role role = new SimpleRole(new SimpleRoleType(relationship.getName()), createUser(relationship.getToIdentityObject()), createGroup(relationship.getFromIdentityObject()));
for (RoleType type : roleTypes) mainResults.add(new SimpleRole(type, roleQuery.user, roleQuery.group));
public void removeRole(RoleType roleType, User user, Group group) throws IdentityException { checkNotNullArgument(roleType, "RoleType"); checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); Role _role = new SimpleRole(roleType, user, group); preRemove(_role); getRepository().removeRelationship(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE, roleType.getName()); if (cache != null) { cache.invalidateAllQueries(cacheNS); cache.invalidateAllSearches(cacheNS); cache.removeRole(cacheNS, _role); } postRemove(_role); }
roles.add(new SimpleRole(new SimpleRoleType(relationship.getName()), createUser(relationship.getToIdentityObject()), createGroup(relationship.getFromIdentityObject()))); roles.add(new SimpleRole(new SimpleRoleType(relationship.getName()), createUser(relationship.getToIdentityObject()), createGroup(relationship.getFromIdentityObject())));