diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/DynamicDefaultValueBehavior.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/DynamicDefaultValueBehavior.java index 0a782774..9000598b 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/DynamicDefaultValueBehavior.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/DynamicDefaultValueBehavior.java @@ -28,11 +28,14 @@ import java.time.LocalDate; import java.util.List; import java.util.Set; import com.kingsrook.qqq.backend.core.actions.values.ValueBehaviorApplier; +import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData; import com.kingsrook.qqq.backend.core.utils.CollectionUtils; +import com.kingsrook.qqq.backend.core.utils.ObjectUtils; +import com.kingsrook.qqq.backend.core.utils.StringUtils; import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair; @@ -45,6 +48,7 @@ public enum DynamicDefaultValueBehavior implements FieldBehavior applyCreateDate(action, recordList, table, field); case MODIFY_DATE -> applyModifyDate(action, recordList, table, field); + case USER_ID -> applyUserId(action, recordList, table, field); default -> throw new IllegalStateException("Unexpected enum value: " + this); } } @@ -136,6 +141,27 @@ public enum DynamicDefaultValueBehavior implements FieldBehavior recordList, QTableMetaData table, QFieldMetaData field) + { + String fieldName = field.getName(); + String userId = ObjectUtils.tryElse(() -> QContext.getQSession().getUser().getIdReference(), null); + if(StringUtils.hasContent(userId)) + { + for(QRecord record : CollectionUtils.nonNullList(recordList)) + { + if(!StringUtils.hasContent(record.getValueString(fieldName))) + { + record.setValue(field.getName(), userId); + } + } + } + } + + + /******************************************************************************* ** *******************************************************************************/