.filter(relationship -> relationship != null && relationship.getSandboxStatus() != SandboxStatus.PUBLIC) .flatMap(relationship -> { try { return ontologyRepository.getRelationshipAndAncestors(relationship, workspaceId).stream() .filter(relationshipOrAncestor -> relationshipOrAncestor.getSandboxStatus() != SandboxStatus.PUBLIC) .map(relationshipOrAncestor -> { try {
public SandboxStatus getSandboxStatus() { for (Concept concept : getConcepts()) { SandboxStatus sandboxStatus = concept.getSandboxStatus(); if (sandboxStatus != SandboxStatus.PUBLIC) { return sandboxStatus; } } for (Relationship relationship : getRelationships()) { SandboxStatus sandboxStatus = relationship.getSandboxStatus(); if (sandboxStatus != SandboxStatus.PUBLIC) { return sandboxStatus; } } for (OntologyProperty property : getProperties()) { SandboxStatus sandboxStatus = property.getSandboxStatus(); if (sandboxStatus != SandboxStatus.PUBLIC) { return sandboxStatus; } } return SandboxStatus.PUBLIC; } }
if (relationships.size() == 1) { for (Relationship relationship : relationships) { if (relationship.getSandboxStatus().equals(SandboxStatus.PRIVATE)) { Graph graph = getGraph(); Authorizations authorizations = graph.createAuthorizations(workspaceId);
@Override public void internalPublishRelationship(Relationship relationship, User user, String workspaceId) { assert (relationship instanceof VertexiumRelationship); if (relationship.getSandboxStatus() != SandboxStatus.PUBLIC) { Vertex vertex = ((VertexiumRelationship) relationship).getVertex(); VisibilityJson visibilityJson = VisalloProperties.VISIBILITY_JSON.getPropertyValue(vertex); if (visibilityJson != null && visibilityJson.getWorkspaces().contains(workspaceId)) { visibilityJson = VisibilityJson.removeFromAllWorkspace(visibilityJson); VisalloVisibility visalloVisibility = visibilityTranslator.toVisibility(visibilityJson); try (GraphUpdateContext ctx = graphRepository.beginGraphUpdate(Priority.NORMAL, user, getAuthorizations(workspaceId))) { ctx.update(vertex, new Date(), visibilityJson, null, vertexUpdateCtx -> { ExistingElementMutation<Vertex> mutation = (ExistingElementMutation<Vertex>) vertexUpdateCtx.getMutation(); mutation.alterElementVisibility(visalloVisibility.getVisibility()); }); removeEdge(ctx, workspaceId, vertex.getId()); } } } }
if (relationship.getProperties().contains(property)) { if (!domainIris.remove(relationship.getIRI())) { if (isPublic(workspaceId) || relationship.getSandboxStatus() == SandboxStatus.PRIVATE) { relationship.getProperties().remove(property);
result.getMetadata().put(additionalProperty.getKey(), additionalProperty.getValue()); result.setSandboxStatus(getSandboxStatus());
if (isPublic(workspaceId) || relationship.getSandboxStatus() == SandboxStatus.PRIVATE) { relationship.getProperties().add(property);
private void doTestPublishEdgeAdd(String edgeLabel, String expectedError, SandboxStatus expectedEdgeStatus) { User systemUser = getUserRepository().getSystemUser(); Authorizations systemAuthorizations = getAuthorizationRepository().getGraphAuthorizations(systemUser); Vertex v1 = getGraphRepository().addVertex("v1", JUNIT_CONCEPT_TYPE, "", null, null, null, systemUser, systemAuthorizations); Vertex v2 = getGraphRepository().addVertex("v2", JUNIT_CONCEPT_TYPE, "", null, null, null, systemUser, systemAuthorizations); getWorkspaceRepository().updateEntitiesOnWorkspace(workspace, Arrays.asList(v1.getId(), v2.getId()), user); Edge edge = getGraphRepository().addEdge("e1", v1, v2, edgeLabel, null, null, "", workspace.getWorkspaceId(), user, workspaceAuthorizations); ClientApiRelationshipPublishItem publishItem = new ClientApiRelationshipPublishItem(); publishItem.setEdgeId(edge.getId()); publishItem.setAction(ClientApiPublishItem.Action.ADD_OR_UPDATE); ClientApiWorkspacePublishResponse response = getWorkspaceRepository().publish(new ClientApiPublishItem[]{publishItem}, user, workspace.getWorkspaceId(), workspaceAuthorizations); if (expectedError != null) { assertPublishFailure(response, workspace, getGraph().getEdge(edge.getId(), workspaceAuthorizations), expectedError); } else { assertPublishSuccess(response, workspace, getGraph().getEdge(edge.getId(), workspaceAuthorizations)); } if (expectedEdgeStatus != null) { Relationship relationship = getOntologyRepository().getRelationshipByIRI(edgeLabel, workspace.getWorkspaceId()); assertEquals(expectedEdgeStatus, relationship.getSandboxStatus()); } }