@Handle public ClientApiSuccess handle( @Required(name = "graphVertexId") String graphVertexId, @Required(name = "propertyKey") String propertyKey, @Required(name = "propertyName") String propertyName, @ActiveWorkspaceId String workspaceId, User user, Authorizations authorizations) throws Exception { OntologyProperty ontologyProperty = ontologyRepository.getRequiredPropertyByIRI(propertyName); Vertex vertex = graph.getVertex(graphVertexId, authorizations); if (!aclProvider.canDeleteProperty(vertex, propertyKey, propertyName, user)) { throw new VisalloAccessDeniedException( propertyName + " is not deleteable", user, graphVertexId); } boolean isComment = VisalloProperties.COMMENT.getPropertyName().equals(propertyName); if (isComment && autoPublishComments) { workspaceId = null; } workspaceHelper.deleteProperties( vertex, propertyKey, propertyName, ontologyProperty, workspaceId, authorizations, user); return VisalloResponse.SUCCESS; }
@Inject public VertexiumUserRepository( Configuration configuration, SimpleOrmSession simpleOrmSession, AuthorizationRepository authorizationRepository, Graph graph, OntologyRepository ontologyRepository, UserSessionCounterRepository userSessionCounterRepository, WorkQueueRepository workQueueRepository, UserNotificationRepository userNotificationRepository, LockRepository lockRepository) { super( configuration, simpleOrmSession, userSessionCounterRepository, workQueueRepository, userNotificationRepository, lockRepository); this.authorizationRepository = authorizationRepository; this.graph = graph; authorizationRepository.addAuthorizationToGraph(VISIBILITY_STRING); authorizationRepository.addAuthorizationToGraph(VisalloVisibility.SUPER_USER_VISIBILITY_STRING); Concept userConcept = ontologyRepository.getOrCreateConcept(null, USER_CONCEPT_IRI, "visalloUser", null); userConceptId = userConcept.getIRI(); Set<String> authorizationsSet = new HashSet<>(); authorizationsSet.add(VISIBILITY_STRING); authorizationsSet.add(VisalloVisibility.SUPER_USER_VISIBILITY_STRING); this.authorizations = graph.createAuthorizations(authorizationsSet); }
@Handle public void handle( @Required(name = "concept") String conceptIRI, @Required(name = "displayName") String displayName, @Required(name = "color") String color, @Required(name = "displayType") String displayType, @Required(name = "titleFormula") String titleFormula, @Required(name = "subtitleFormula") String subtitleFormula, @Required(name = "timeFormula") String timeFormula, @Required(name = "addRelatedConceptWhiteList[]") String[] addRelatedConceptWhiteListArg, @Required(name = "intents[]") String[] intents, @Optional(name = "searchable", defaultValue = "true") boolean searchable, @Optional(name = "addable", defaultValue = "true") boolean addable, @Optional(name = "userVisible", defaultValue = "true") boolean userVisible, User user, Authorizations authorizations, VisalloResponse response) throws Exception { HashSet<String> addRelatedConceptWhiteList = new HashSet<>(Arrays.asList(addRelatedConceptWhiteListArg)); Concept concept = ontologyRepository.getConceptByIRI(conceptIRI); if (concept == null) { response.respondWithNotFound("concept " + conceptIRI + " not found"); return; } if (displayName.length() != 0) { concept.setProperty( OntologyProperties.DISPLAY_NAME.getPropertyName(), displayName, authorizations); } if (color.length() != 0) { concept.setProperty(OntologyProperties.COLOR.getPropertyName(), color, authorizations); } JSONArray whiteList = new JSONArray(); for (String whitelistIri : addRelatedConceptWhiteList) { whiteList.put(whitelistIri); } concept.setProperty( OntologyProperties.ADD_RELATED_CONCEPT_WHITE_LIST.getPropertyName(), whiteList.toString(), authorizations); concept.setProperty( OntologyProperties.DISPLAY_TYPE.getPropertyName(), displayType, authorizations); concept.setProperty( OntologyProperties.SEARCHABLE.getPropertyName(), searchable, authorizations); concept.setProperty(OntologyProperties.ADDABLE.getPropertyName(), addable, authorizations); concept.setProperty( OntologyProperties.USER_VISIBLE.getPropertyName(), userVisible, authorizations); if (titleFormula.length() != 0) { concept.setProperty( OntologyProperties.TITLE_FORMULA.getPropertyName(), titleFormula, authorizations); } else { concept.removeProperty(OntologyProperties.TITLE_FORMULA.getPropertyName(), authorizations); } if (subtitleFormula.length() != 0) { concept.setProperty( OntologyProperties.SUBTITLE_FORMULA.getPropertyName(), subtitleFormula, authorizations); } else { concept.removeProperty(OntologyProperties.SUBTITLE_FORMULA.getPropertyName(), authorizations); } if (timeFormula.length() != 0) { concept.setProperty( OntologyProperties.TIME_FORMULA.getPropertyName(), timeFormula, authorizations); } else { concept.removeProperty(OntologyProperties.TIME_FORMULA.getPropertyName(), authorizations); } concept.updateIntents(StringArrayUtil.removeNullOrEmptyElements(intents), authorizations); ontologyRepository.clearCache(); response.respondWithSuccessJson(); }