mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-781 log (once) & noop for tables w/o integer primary key, as that is required for auditing...
This commit is contained in:
@ -30,10 +30,12 @@ import java.time.temporal.ChronoUnit;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import com.kingsrook.qqq.backend.core.actions.AbstractQActionFunction;
|
import com.kingsrook.qqq.backend.core.actions.AbstractQActionFunction;
|
||||||
import com.kingsrook.qqq.backend.core.actions.values.QPossibleValueTranslator;
|
import com.kingsrook.qqq.backend.core.actions.values.QPossibleValueTranslator;
|
||||||
import com.kingsrook.qqq.backend.core.actions.values.QValueFormatter;
|
import com.kingsrook.qqq.backend.core.actions.values.QValueFormatter;
|
||||||
@ -73,6 +75,7 @@ public class DMLAuditAction extends AbstractQActionFunction<DMLAuditInput, DMLAu
|
|||||||
|
|
||||||
public static final String AUDIT_CONTEXT_FIELD_NAME = "auditContext";
|
public static final String AUDIT_CONTEXT_FIELD_NAME = "auditContext";
|
||||||
|
|
||||||
|
private static Set<String> loggedUnauditableTableNames = new HashSet<>();
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -88,6 +91,20 @@ public class DMLAuditAction extends AbstractQActionFunction<DMLAuditInput, DMLAu
|
|||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
DMLType dmlType = getDMLType(tableActionInput);
|
DMLType dmlType = getDMLType(tableActionInput);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// currently, the table's primary key must be id... so, log (once) and return early if not that //
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
QFieldMetaData field = table.getField(table.getPrimaryKeyField());
|
||||||
|
if(!QFieldType.INTEGER.equals(field.getType()))
|
||||||
|
{
|
||||||
|
if(!loggedUnauditableTableNames.contains(table.getName()))
|
||||||
|
{
|
||||||
|
LOG.info("Cannot audit table without integer as its primary key", logPair("tableName", table.getName()));
|
||||||
|
loggedUnauditableTableNames.add(table.getName());
|
||||||
|
}
|
||||||
|
return (output);
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
List<QRecord> recordList = CollectionUtils.nonNullList(input.getRecordList()).stream()
|
List<QRecord> recordList = CollectionUtils.nonNullList(input.getRecordList()).stream()
|
||||||
|
Reference in New Issue
Block a user