Esempio n. 1
0
  public Audit auditVertex(
      AuditAction auditAction,
      Object vertexId,
      String process,
      String comment,
      User user,
      FlushFlag flushFlag,
      Visibility visibility) {
    checkNotNull(vertexId, "vertexId cannot be null");
    checkNotNull(comment, "comment cannot be null");
    checkNotNull(user, "user cannot be null");
    checkNotNull(process, "process cannot be null");

    Audit audit = new Audit(AuditRowKey.build(vertexId));
    visibility = orVisibility(visibility);
    audit
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(auditAction, visibility)
        .setType(OntologyRepository.ENTITY_CONCEPT_IRI, visibility)
        .setComment(comment, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    if (process.length() > 0) {
      audit.getAuditCommon().setProcess(process, visibility);
    }

    save(audit, flushFlag);
    return audit;
  }
Esempio n. 2
0
  public List<Audit> auditRelationship(
      AuditAction action,
      Vertex sourceVertex,
      Vertex destVertex,
      Edge edge,
      String process,
      String comment,
      User user,
      Visibility visibility) {
    checkNotNull(action, "action cannot be null");
    checkNotNull(sourceVertex, "sourceVertex cannot be null");
    checkNotNull(destVertex, "destVertex cannot be null");
    checkNotNull(edge, "edge cannot be null");
    checkNotNull(process, "process cannot be null");
    checkNotNull(comment, "comment cannot be null");
    checkNotNull(user, "user cannot be null");

    Audit auditSourceDest = new Audit(AuditRowKey.build(sourceVertex.getId(), destVertex.getId()));
    Audit auditDestSource = new Audit(AuditRowKey.build(destVertex.getId(), sourceVertex.getId()));
    Audit auditEdge = new Audit(AuditRowKey.build(edge.getId()));
    visibility = orVisibility(visibility);

    List<Audit> audits = new ArrayList<Audit>();
    String displayLabel = ontologyRepository.getDisplayNameForLabel(edge.getLabel());
    audits.add(
        auditRelationshipHelper(
            auditSourceDest,
            action,
            sourceVertex,
            destVertex,
            displayLabel,
            process,
            comment,
            user,
            visibility));
    audits.add(
        auditRelationshipHelper(
            auditDestSource,
            action,
            sourceVertex,
            destVertex,
            displayLabel,
            process,
            comment,
            user,
            visibility));
    auditEdge
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(action, visibility)
        .setType(OntologyRepository.TYPE_RELATIONSHIP, visibility)
        .setComment(comment, visibility)
        .setProcess(process, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    auditEdge
        .getAuditRelationship()
        .setSourceId(sourceVertex.getId(), visibility)
        .setSourceType(CONCEPT_TYPE.getPropertyValue(sourceVertex), visibility)
        .setSourceTitle(TITLE.getPropertyValue(sourceVertex), visibility)
        .setDestId(destVertex.getId(), visibility)
        .setDestTitle(TITLE.getPropertyValue(destVertex), visibility)
        .setDestType(CONCEPT_TYPE.getPropertyValue(destVertex), visibility)
        .setLabel(displayLabel, visibility);

    audits.add(auditEdge);

    saveMany(audits);
    return audits;
  }
Esempio n. 3
0
  public List<Audit> auditRelationshipProperty(
      AuditAction action,
      String sourceId,
      String destId,
      String propertyName,
      Object oldValue,
      Object newValue,
      Edge edge,
      String process,
      String comment,
      User user,
      Visibility visibility) {
    checkNotNull(action, "action cannot be null");
    checkNotNull(sourceId, "sourceId cannot be null");
    checkNotNull(sourceId.length() > 0, "sourceId cannot be empty");
    checkNotNull(destId, "destId cannot be null");
    checkNotNull(destId.length() > 0, "destId cannot be empty");
    checkNotNull(propertyName, "propertyName cannot be null");
    checkNotNull(propertyName.length() > 0, "propertyName cannot be empty");
    checkNotNull(edge, "edge cannot be null");
    checkNotNull(process, "process cannot be null");
    checkNotNull(comment, "comment cannot be null");
    checkNotNull(user, "user cannot be null");

    Audit auditSourceDest = new Audit(AuditRowKey.build(sourceId, destId));
    Audit auditDestSource = new Audit(AuditRowKey.build(destId, sourceId));
    Audit auditEdge = new Audit(AuditRowKey.build(edge.getId()));
    visibility = orVisibility(visibility);

    auditSourceDest
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(action, visibility)
        .setType(OntologyRepository.TYPE_PROPERTY, visibility)
        .setComment(comment, visibility)
        .setProcess(process, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    auditDestSource
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(action, visibility)
        .setType(OntologyRepository.TYPE_PROPERTY, visibility)
        .setComment(comment, visibility)
        .setProcess(process, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    auditEdge
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(action, visibility)
        .setType(OntologyRepository.TYPE_PROPERTY, visibility)
        .setComment(comment, visibility)
        .setProcess(process, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    if (oldValue != null && !oldValue.equals("")) {
      auditDestSource.getAuditProperty().setPreviousValue(oldValue, visibility);
      auditSourceDest.getAuditProperty().setPreviousValue(oldValue, visibility);
      auditEdge.getAuditProperty().setPreviousValue(oldValue, visibility);
    }
    if (action == AuditAction.DELETE) {
      auditDestSource.getAuditProperty().setNewValue("", visibility);
      auditSourceDest.getAuditProperty().setNewValue("", visibility);
      auditEdge.getAuditProperty().setNewValue("", visibility);
    } else {
      // TODO handle multi-valued properties
      auditDestSource.getAuditProperty().setNewValue(newValue, visibility);
      auditSourceDest.getAuditProperty().setNewValue(newValue, visibility);
      auditEdge.getAuditProperty().setNewValue(newValue, visibility);
    }
    auditDestSource.getAuditProperty().setPropertyName(propertyName, visibility);
    auditSourceDest.getAuditProperty().setPropertyName(propertyName, visibility);
    auditEdge.getAuditProperty().setPropertyName(propertyName, visibility);

    List<Audit> audits = Lists.newArrayList(auditSourceDest, auditDestSource);
    saveMany(audits);
    return audits;
  }
Esempio n. 4
0
  public Audit auditEntityProperty(
      AuditAction action,
      Object id,
      String propertyName,
      Object oldValue,
      Object newValue,
      String process,
      String comment,
      Map<String, Object> metadata,
      User user,
      Visibility visibility) {
    checkNotNull(action, "action cannot be null");
    checkNotNull(id, "id cannot be null");
    checkNotNull(propertyName, "propertyName cannot be null");
    checkArgument(propertyName.length() > 0, "property name cannot be empty");
    checkNotNull(process, "process cannot be null");
    checkNotNull(comment, "comment cannot be null");
    checkNotNull(user, "user cannot be null");

    Audit audit = new Audit(AuditRowKey.build(id));
    visibility = orVisibility(visibility);

    audit
        .getAuditCommon()
        .setUser(user, visibility)
        .setAction(action, visibility)
        .setType(OntologyRepository.TYPE_PROPERTY, visibility)
        .setComment(comment, visibility)
        .setProcess(process, visibility)
        .setUnixBuildTime(
            versionService.getUnixBuildTime() != null ? versionService.getUnixBuildTime() : -1L,
            visibility)
        .setScmBuildNumber(
            versionService.getScmBuildNumber() != null ? versionService.getScmBuildNumber() : "",
            visibility)
        .setVersion(
            versionService.getVersion() != null ? versionService.getVersion() : "", visibility);

    if (oldValue != null) {
      if (oldValue instanceof GeoPoint) {
        String val =
            String.format(
                "POINT(%f,%f)",
                ((GeoPoint) oldValue).getLatitude(), ((GeoPoint) oldValue).getLongitude());
        audit.getAuditProperty().setPreviousValue(val, visibility);
      } else {
        audit.getAuditProperty().setPreviousValue(oldValue.toString(), visibility);
      }
    }
    if (action == AuditAction.DELETE) {
      audit.getAuditProperty().setNewValue("", visibility);
    } else {
      if (newValue instanceof GeoPoint) {
        String val =
            String.format(
                "POINT(%f,%f)",
                ((GeoPoint) newValue).getLatitude(), ((GeoPoint) newValue).getLongitude());
        audit.getAuditProperty().setNewValue(val, visibility);
      } else {
        audit.getAuditProperty().setNewValue(newValue.toString(), visibility);
      }
    }
    audit.getAuditProperty().setPropertyName(propertyName, visibility);

    if (metadata != null || !metadata.isEmpty()) {
      audit.getAuditProperty().setPropertyMetadata(jsonMetadata(metadata).toString(), visibility);
    }

    save(audit);
    return audit;
  }