/** * {@inheritDoc} */ @Override public void recordAction(Resource resource, AuditRecord.Action action, AuditRecord.Magnitude importance, Object id, String userId, Object before, Object after, String description, ObjectMap attributes) throws CatalogException { AuditRecord auditRecord = new AuditRecord(id, resource, action, importance, toObjectMap(before), toObjectMap(after), System.currentTimeMillis(), userId, description, attributes); logger.debug("{}", action, auditRecord); auditDBAdaptor.insertAuditRecord(auditRecord).first(); }
@Override public QueryResult groupBy(Query query, List<String> fields, QueryOptions options, String token) throws CatalogException { if (ROOT.equals(authenticationManager.getUserId(token))) { return auditDBAdaptor.groupBy(query, fields, options); } throw new CatalogAuthorizationException("Only root of OpenCGA can query the audit database"); } }
@Test public void testInsertAuditRecord() throws Exception { auditDbAdaptor.insertAuditRecord(new AuditRecord(23, AuditRecord.Resource.sample, AuditRecord.Action.update, AuditRecord.Magnitude.medium, new ObjectMap("name", "HG0001"), new ObjectMap("name", "HG0002"), System.currentTimeMillis(), "admin", "", new ObjectMap())); auditDbAdaptor.insertAuditRecord(new AuditRecord(23, AuditRecord.Resource.sample, AuditRecord.Action.update, AuditRecord.Magnitude.medium, new ObjectMap("name", "HG0002"), new ObjectMap("name", "HG0003"), System.currentTimeMillis(), "admin", "", new ObjectMap())); auditDbAdaptor.insertAuditRecord(new AuditRecord(23, AuditRecord.Resource.sample, AuditRecord.Action.update, AuditRecord.Magnitude.medium, new ObjectMap("description", ""), new ObjectMap("description", "New sample"), System.currentTimeMillis(), "admin", "", new ObjectMap())); }