public Map<String, String> getRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship) throws IdentityException, OperationNotSupportedException HibernateIdentityObject fromIO = safeGet(ctx, relationship.getFromIdentityObject()); HibernateIdentityObject toIO = safeGet(ctx, relationship.getToIdentityObject()); HibernateIdentityObjectRelationshipType type = getHibernateIdentityObjectRelationshipType(ctx, relationship.getType()); if (relationship.getName() == null) .createCriteria(HibernateIdentityObjectRelationshipName.class).add(Restrictions.eq("name", relationship.getName())) .uniqueResult(); .setParameter("toIO", toIO) .setParameter("typeName", type.getName()) .setParameter("name", relationship.getName());
public boolean hasRole(User user, Group group, RoleType roleType) throws IdentityException { checkNotNullArgument(roleType, "RoleType"); checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); //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())) { return true; } } return false; }
if (roleType.getName().equals(relationship.getName())) 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())));
public Map<String, String> getRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship) throws IdentityException, OperationNotSupportedException { IdentityStore fromStore = resolveIdentityStore(relationship.getFromIdentityObject()); IdentityStore toStore = resolveIdentityStore(relationship.getToIdentityObject()); if (fromStore == toStore && toStore.getSupportedFeatures().isNamedRelationshipsSupported()) { return fromStore.getRelationshipProperties(resolveInvocationContext(fromStore, ctx), relationship); } return defaultIdentityStore.getRelationshipProperties(resolveInvocationContext(defaultIdentityStore, ctx), relationship); }
public Collection<RoleType> findRoleTypes(User user, Group group, IdentitySearchCriteria criteria) throws IdentityException { checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); Set<IdentityObjectRelationship> rels = getRepository().resolveRelationships(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE); Set<RoleType> types = new HashSet<RoleType>(); for (IdentityObjectRelationship rel : rels) { types.add(new SimpleRoleType(rel.getName())); } return types; }
public Role getRole(RoleType roleType, User user, Group group) throws IdentityException { checkNotNullArgument(roleType, "RoleType"); checkNotNullArgument(user, "User"); checkNotNullArgument(group, "Group"); //TODO: does separate hasRelationship method in IdentityStore makes sense? Set<IdentityObjectRelationship> rels = getRepository().resolveRelationships(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE); if (rels.size() == 0) { return null; } for (IdentityObjectRelationship relationship : rels) { if (roleType.getName().equals(relationship.getName())) { return new SimpleRole(new SimpleRoleType(relationship.getName()), createUser(relationship.getToIdentityObject()), createGroup(relationship.getFromIdentityObject())); } } return null; }
public void setRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship, Map<String, String> properties) throws IdentityException, OperationNotSupportedException { IdentityStore fromStore = resolveIdentityStore(relationship.getFromIdentityObject()); IdentityStore toStore = resolveIdentityStore(relationship.getToIdentityObject()); if (fromStore == toStore && toStore.getSupportedFeatures().isNamedRelationshipsSupported()) { fromStore.setRelationshipProperties(resolveInvocationContext(fromStore, ctx), relationship, properties); return; } defaultIdentityStore.setRelationshipProperties(resolveInvocationContext(defaultIdentityStore, ctx), relationship, properties); }
public void setRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship, Map<String, String> properties) throws IdentityException, OperationNotSupportedException HibernateIdentityObject fromIO = safeGet(ctx, relationship.getFromIdentityObject()); HibernateIdentityObject toIO = safeGet(ctx, relationship.getToIdentityObject()); HibernateIdentityObjectRelationshipType type = getHibernateIdentityObjectRelationshipType(ctx, relationship.getType()); if (relationship.getName() == null) .createCriteria(HibernateIdentityObjectRelationshipName.class).add(Restrictions.eq("name", relationship.getName())) .uniqueResult(); .setParameter("toIO", toIO) .setParameter("typeName", type.getName()) .setParameter("name", relationship.getName());
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 IdentityObjectRelationship rel = getRepository().createRelationship(getInvocationContext(), createIdentityObject(group), createIdentityObject(user), ROLE, roleType.getName(), false); //TODO: null id - IdentityObjectRelationship doesn't have id return new SimpleRole(new SimpleRoleType(rel.getName()), createUser(rel.getToIdentityObject()), createGroup(rel.getFromIdentityObject())); }
public void removeRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship, Set<String> properties) throws IdentityException, OperationNotSupportedException { IdentityStore fromStore = resolveIdentityStore(relationship.getFromIdentityObject()); IdentityStore toStore = resolveIdentityStore(relationship.getToIdentityObject()); if (fromStore == toStore && toStore.getSupportedFeatures().isNamedRelationshipsSupported()) { fromStore.removeRelationshipProperties(resolveInvocationContext(fromStore, ctx), relationship, properties); return; } defaultIdentityStore.removeRelationshipProperties(resolveInvocationContext(defaultIdentityStore, ctx), relationship, properties); }
public void removeRelationshipProperties(IdentityStoreInvocationContext ctx, IdentityObjectRelationship relationship, Set<String> properties) throws IdentityException, OperationNotSupportedException HibernateIdentityObject fromIO = safeGet(ctx, relationship.getFromIdentityObject()); HibernateIdentityObject toIO = safeGet(ctx, relationship.getToIdentityObject()); HibernateIdentityObjectRelationshipType type = getHibernateIdentityObjectRelationshipType(ctx, relationship.getType()); if (relationship.getName() == null) .createCriteria(HibernateIdentityObjectRelationshipName.class).add(Restrictions.eq("name", relationship.getName())) .uniqueResult(); .setParameter("toIO", toIO) .setParameter("typeName", type.getName()) .setParameter("name", relationship.getName());