private Map<String, String> loadVersionsFromGraph() { Map<String, String> versions = new HashMap<>(); for (T element : getRootVertex().findAll()) { String v = generateVersion(element); versions.put(element.getUuid(), v); } return versions; }
/** * Add basic references (creator, editor, created, edited) to the map for the given vertex. * * @param document * JSON document to which basic references will be added * @param vertex * Vertex which will be used to load the basic references */ protected void addBasicReferences(JsonObject document, MeshCoreVertex<?, ?> vertex) { document.put("uuid", vertex.getUuid()); if (vertex instanceof CreatorTrackingVertex) { CreatorTrackingVertex createdVertex = (CreatorTrackingVertex) vertex; addUser(document, "creator", createdVertex.getCreator()); document.put("created", createdVertex.getCreationDate()); } if (vertex instanceof EditorTrackingVertex) { EditorTrackingVertex editedVertex = (EditorTrackingVertex) vertex; addUser(document, "editor", editedVertex.getEditor()); document.put("edited", editedVertex.getLastEditedDate()); } }
@Override public <T extends MeshCoreVertex<?, ?>> T requiresPerm(T vertex, GraphPermission... permission) { for (GraphPermission perm : permission) { if (getUser().hasPermission(vertex, perm)) { return vertex; } } throw missingPerm(vertex.getTypeInfo().getType(), vertex.getUuid()); }
/** * Load the object by name and check the given permission. * * @param ac * Context to be used in order to check user permissions * @param name * Name of the object that should be loaded * @param perm * Permission that must be granted in order to load the object * @return */ default T findByName(InternalActionContext ac, String name, GraphPermission perm) { T element = findByName(name); if (element == null) { throw error(NOT_FOUND, "object_not_found_for_name", name); } MeshAuthUser requestUser = ac.getUser(); String elementUuid = element.getUuid(); if (requestUser.hasPermission(element, perm)) { return element; } else { throw error(FORBIDDEN, "error_missing_perm", elementUuid, perm.getRestPerm().getName()); } }
String elementUuid = element.getUuid(); if (requestUser.hasPermission(element, perm)) { return element;
String elementUuid = element.getUuid(); String name = null; if (element instanceof NamedElement) {
public void assertGenericNode(MeshCoreVertex<?, ?> node, AbstractGenericRestResponse model) { assertNotNull(node); assertNotNull(model); assertNotNull("UUID field was not set in the rest response.", model.getUuid()); assertEquals("The uuids should not be different", node.getUuid(), model.getUuid()); assertNotNull("Permissions field was not set in the rest response.", model.getPermissions()); assertNotNull("Creator field was not set in the rest response.", model.getCreator()); assertNotNull("Editor field was not set in the rest response.", model.getEditor()); if (node instanceof EditorTrackingVertex) { EditorTrackingVertex editedNode = (EditorTrackingVertex) node; assertNotNull("The editor of the graph node was not set.", editedNode.getEditor()); assertEquals(editedNode.getEditor().getFirstname(), model.getEditor().getFirstName()); assertEquals(editedNode.getEditor().getLastname(), model.getEditor().getLastName()); assertEquals(editedNode.getEditor().getUuid(), model.getEditor().getUuid()); } if (node instanceof CreatorTrackingVertex) { CreatorTrackingVertex createdNode = (CreatorTrackingVertex) node; assertEquals(createdNode.getCreator().getFirstname(), model.getCreator().getFirstName()); assertEquals(createdNode.getCreator().getLastname(), model.getCreator().getLastName()); assertEquals(createdNode.getCreator().getUuid(), model.getCreator().getUuid()); } } }
public void assertGenericNode(MeshCoreVertex<?, ?> node, AbstractGenericRestResponse model) { assertNotNull(node); assertNotNull(model); assertNotNull("UUID field was not set in the rest response.", model.getUuid()); assertEquals("The uuids should not be different", node.getUuid(), model.getUuid()); assertNotNull("Permissions field was not set in the rest response.", model.getPermissions()); if (node instanceof EditorTrackingVertex) { assertNotNull("Editor field was not set in the rest response.", model.getEditor()); EditorTrackingVertex editedNode = (EditorTrackingVertex) node; assertNotNull("The editor of the graph node was not set.", editedNode.getEditor()); assertEquals(editedNode.getEditor().getFirstname(), model.getEditor()); assertEquals(editedNode.getEditor().getLastname(), model.getEditor().getLastName()); assertEquals(editedNode.getEditor().getUuid(), model.getEditor().getUuid()); } if (node instanceof CreatorTrackingVertex && ((CreatorTrackingVertex) node).getCreator() != null) { assertNotNull("Creator field was not set in the rest response.", model.getCreator()); CreatorTrackingVertex createdNode = (CreatorTrackingVertex) node; assertEquals(createdNode.getCreator().getFirstname(), model.getCreator().getFirstName()); assertEquals(createdNode.getCreator().getLastname(), model.getCreator().getLastName()); assertEquals(createdNode.getCreator().getUuid(), model.getCreator().getUuid()); } } }