private static FilterMapEntry computeQueryForLogsOnDocAfterDate(Date date) { FilterMapEntry filterByDate = new FilterMapEntry(); filterByDate.setColumnName(BuiltinLogEntryData.LOG_EVENT_DATE); filterByDate.setOperator(">="); filterByDate.setQueryParameterName(BuiltinLogEntryData.LOG_EVENT_DATE); filterByDate.setObject(date); return filterByDate; }
public Long getCount() { return service.getEventsCount(eventName); }
protected LogEntry doPublish(LogEntry entry) { if (entry.getExtendedInfos() != null) { entry.getExtendedInfos().size(); // force lazy loading } return entry; }
/** * Could be overridden to get other (additional) data. * * @param logEntryElement */ protected static LogEntry readLogEntry(AuditLogger audit, Element logEntryElement) { LogEntry logEntry = audit.newLogEntry(); logEntry.setCategory(logEntryElement.attributeValue("category")); logEntry.setComment(logEntryElement.attributeValue("comment")); logEntry.setDocLifeCycle(logEntryElement.attributeValue("docLifeCycle")); logEntry.setDocPath(logEntryElement.attributeValue("docPath")); logEntry.setDocType(logEntryElement.attributeValue("docType")); logEntry.setDocUUID(logEntryElement.attributeValue("docUUID")); logEntry.setRepositoryId(logEntryElement.attributeValue("repoId")); try { Date creationDate = getDateFormat().parse(logEntryElement.attributeValue("creationDate")); logEntry.setEventDate(creationDate); } catch (ParseException e) { log.error(e, e); } logEntry.setEventId(logEntryElement.attributeValue("eventId")); logEntry.setPrincipalName(logEntryElement.attributeValue("principalName")); return logEntry; }
private Date getCreationDateForVersion(Logs logsService, DocumentModel version) { List<LogEntry> logs = logsService.getLogEntriesFor(version.getId(), filterMap, true); for (LogEntry logEntry : logs) { if (logEntry.getEventId().equals(DocumentEventTypes.DOCUMENT_CREATED)) { return logEntry.getEventDate(); } } return null; }
protected void writeExtendedInfos(JsonGenerator jg, LogEntry logEntry) throws IOException { Map<String, ExtendedInfo> extended = logEntry.getExtendedInfos(); jg.writeObjectFieldStart(LOG_EXTENDED); for (String key : extended.keySet()) { ExtendedInfo ei = extended.get(key); if (ei != null && ei.getSerializableValue() != null) { writeExtendedInfo(jg, key, ei.getSerializableValue()); } else { jg.writeNullField(key); } } jg.writeEndObject(); }
protected long getTimestampForEntry(LogEntry entry) { if (entry.getEventDate() != null) { return entry.getEventDate().getTime(); } return System.currentTimeMillis(); }
public void append(List<LogEntry> entries) { entries.forEach(e -> { if (em.contains(e)) { log.warn("Log entry already exists for id " + e.getId()); } em.merge(e); }); }
private List<LogEntry> getLogsForDocUntilDateWithEvent(Logs logsService, String docId, Date date, String eventName, boolean doDefaultSort) { filterMap = new HashMap<String, FilterMapEntry>(); filterMap.put(BuiltinLogEntryData.LOG_EVENT_DATE, computeQueryForLogsOnDocAfterDate(date)); filterMap.put(BuiltinLogEntryData.LOG_EVENT_ID, computeQueryForLogsWithEvent(eventName)); return logsService.getLogEntriesFor(docId, filterMap, doDefaultSort); }
protected void doPersist(LogEntry entry) { // Set the log date in java right before saving to the database. We // cannot set a static column definition to // "TIMESTAMP DEFAULT CURRENT_TIMESTAMP" as MS SQL Server does not // support the TIMESTAMP column type and generating a dynamic // persistence configuration that would depend on the database is too // complicated. entry.setLogDate(new Date()); em.persist(entry); }
/** * Should be overridden if log data structure is changed. */ private static LogEntry translate(LogEntry logEntry, DocumentRef newRef) { LogEntry newLogEntry; try { newLogEntry = (LogEntry) BeanUtils.cloneBean(logEntry); } catch (ReflectiveOperationException e) { throw new NuxeoException("cannot clone bean " + logEntry, e); } newLogEntry.setDocUUID(newRef); return newLogEntry; }
@Factory(value = "userLoginEvents", scope = ScopeType.EVENT) public List<LogEntry> getLoginInfo() { AuditReader reader = Framework.getService(AuditReader.class); String[] cat = { getSelectedAuditCategory() }; if (getSelectedAuditCategory().equals("all")) { cat = new String[0]; } return reader.queryLogsByPage(new String[0], selectedAuditTimeRange, cat, null, currentAuditPage, pageSize); }
public static void notifyAuditEvent(EventContext ctx, String category, String eventName, String comment) throws NuxeoException { ctx.setProperty("category", category); ctx.setProperty("comment", comment); Logs auditProducer = getAuditEventProducer(); Event entry = new EventImpl(eventName, ctx); auditProducer.logEvent(entry); }
public void registerResources() { for (String name : auditService.getAuditableEventNames()) { doRegisterResource(name); } }
protected boolean isMigrationDone() { AuditReader reader = Framework.getService(AuditReader.class); List<LogEntry> entries = reader.queryLogs(new String[] { MIGRATION_DONE_EVENT }, null); return !entries.isEmpty(); }
@Override public void handleEvent(EventBundle events) { AuditLogger logger = Framework.getService(AuditLogger.class); if (logger != null) { logger.logEvents(events); } else { log.error("Can not reach AuditLogger"); } }
@Override public boolean acceptEvent(Event event) { AuditLogger logger = Framework.getService(AuditLogger.class); if (logger == null) { return false; } return logger.getAuditableEventNames().contains(event.getName()); }
private static FilterMapEntry computeQueryForLogsWithEvent(String eventName) { FilterMapEntry filterByDate = new FilterMapEntry(); filterByDate.setColumnName(BuiltinLogEntryData.LOG_EVENT_ID); filterByDate.setOperator("LIKE"); filterByDate.setQueryParameterName(BuiltinLogEntryData.LOG_EVENT_ID); filterByDate.setObject(eventName); return filterByDate; }
protected void writeExtendedInfos(JsonGenerator jg, LogEntry logEntry) throws IOException { Map<String, ExtendedInfo> extended = logEntry.getExtendedInfos(); jg.writeObjectFieldStart("extended"); for (String key : extended.keySet()) { ExtendedInfo ei = extended.get(key); if (ei != null && ei.getSerializableValue() != null) { writeExtendedInfo(jg, key, ei.getSerializableValue()); } else { jg.writeNullField(key); } } jg.writeEndObject(); }
private static FilterMapEntry computeQueryForLogsOnDocUntilDate(Date date) { FilterMapEntry filterByDate = new FilterMapEntry(); filterByDate.setColumnName(BuiltinLogEntryData.LOG_EVENT_DATE); filterByDate.setOperator("<="); filterByDate.setQueryParameterName(BuiltinLogEntryData.LOG_EVENT_DATE); filterByDate.setObject(date); return filterByDate; }