package io.cattle.platform.iaas.api.auditing.dao.impl; import io.cattle.platform.api.auth.Identity; import io.cattle.platform.core.model.AuditLog; import io.cattle.platform.core.model.tables.AuditLogTable; import io.cattle.platform.db.jooq.dao.impl.AbstractJooqDao; import io.cattle.platform.iaas.api.auditing.dao.AuditLogDao; import io.cattle.platform.object.ObjectManager; import io.cattle.platform.object.util.DataUtils; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; public class AuditLogDaoImpl extends AbstractJooqDao implements AuditLogDao { @Inject ObjectManager objectManager; @Override public AuditLog create(String resourceType, Long resourceId, Map<String, Object> data, Identity identity, Long accountId, Long authenticatedAsAccountId, String eventType, String authType, Long runTime, String description, String clientIp) { AuditLog logs = create().newRecord(AuditLogTable.AUDIT_LOG); logs.setAccountId(accountId); logs.setAuthenticatedAsAccountId(authenticatedAsAccountId); logs.setEventType(eventType); Map<String, Object> dataMap = new HashMap<>(); dataMap.put(DataUtils.FIELDS, data); logs.setData(dataMap); logs.setAuthenticatedAsIdentityId(identity != null ? identity.getId() : null); logs.setRuntime(runTime); logs.setDescription(description); logs.setAuthType(authType); logs.setResourceId(resourceId); logs.setResourceType(resourceType); logs.setClientIp(clientIp); objectManager.create(logs); return objectManager.reload(logs); } }