Skip to content

Commit f494a04

Browse files
committed
fix: sanitize date/time-related fields in publishing-related entry factories
1 parent a009406 commit f494a04

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

packages/api-headless-cms/src/crud/contentEntry/entryDataFactories/createPublishEntryData.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { STATUS_PUBLISHED } from "./statuses";
33
import { SecurityIdentity } from "@webiny/api-security/types";
44
import { validateModelEntryDataOrThrow } from "~/crud/contentEntry/entryDataValidation";
55
import { getIdentity } from "~/utils/identity";
6+
import { getDate } from "~/utils/date";
67

78
type CreatePublishEntryDataParams = {
89
model: CmsModel;
@@ -39,11 +40,11 @@ export const createPublishEntryData = async ({
3940
/**
4041
* Entry-level meta fields. 👇
4142
*/
42-
createdOn: latestEntry.createdOn,
43-
modifiedOn: currentDateTime,
44-
savedOn: currentDateTime,
45-
firstPublishedOn: latestEntry.firstPublishedOn || currentDateTime,
46-
lastPublishedOn: currentDateTime,
43+
createdOn: getDate(latestEntry.createdOn),
44+
modifiedOn: getDate(currentDateTime),
45+
savedOn: getDate(currentDateTime),
46+
firstPublishedOn: getDate(latestEntry.firstPublishedOn, currentDateTime),
47+
lastPublishedOn: getDate(currentDateTime),
4748
createdBy: getIdentity(latestEntry.createdBy),
4849
modifiedBy: getIdentity(currentIdentity),
4950
savedBy: getIdentity(currentIdentity),
@@ -53,11 +54,11 @@ export const createPublishEntryData = async ({
5354
/**
5455
* Revision-level meta fields. 👇
5556
*/
56-
revisionCreatedOn: originalEntry.revisionCreatedOn,
57-
revisionSavedOn: currentDateTime,
58-
revisionModifiedOn: currentDateTime,
59-
revisionFirstPublishedOn: originalEntry.revisionFirstPublishedOn || currentDateTime,
60-
revisionLastPublishedOn: currentDateTime,
57+
revisionCreatedOn: getDate(originalEntry.revisionCreatedOn),
58+
revisionSavedOn: getDate(currentDateTime),
59+
revisionModifiedOn: getDate(currentDateTime),
60+
revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),
61+
revisionLastPublishedOn: getDate(currentDateTime),
6162
revisionCreatedBy: getIdentity(originalEntry.revisionCreatedBy),
6263
revisionSavedBy: getIdentity(currentIdentity),
6364
revisionModifiedBy: getIdentity(currentIdentity),

packages/api-headless-cms/src/crud/contentEntry/entryDataFactories/createRepublishEntryData.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { referenceFieldsMapping } from "~/crud/contentEntry/referenceFieldsMappi
33
import { STATUS_PUBLISHED } from "./statuses";
44
import { SecurityIdentity } from "@webiny/api-security/types";
55
import { getIdentity } from "~/utils/identity";
6+
import { getDate } from "~/utils/date";
67

78
type CreateRepublishEntryDataParams = {
89
model: CmsModel;
@@ -36,28 +37,28 @@ export const createRepublishEntryData = async ({
3637
/**
3738
* Entry-level meta fields. 👇
3839
*/
39-
savedOn: currentDateTime,
40-
modifiedOn: currentDateTime,
40+
savedOn: getDate(currentDateTime),
41+
modifiedOn: getDate(currentDateTime),
4142
savedBy: getIdentity(currentIdentity),
4243
modifiedBy: getIdentity(currentIdentity),
43-
firstPublishedOn: originalEntry.firstPublishedOn || currentDateTime,
44+
firstPublishedOn: getDate(originalEntry.firstPublishedOn, currentDateTime),
4445
firstPublishedBy: getIdentity(originalEntry.firstPublishedBy, currentIdentity),
45-
lastPublishedOn: currentDateTime,
46+
lastPublishedOn: getDate(currentDateTime),
4647
lastPublishedBy: getIdentity(currentIdentity),
4748

4849
/**
4950
* Revision-level meta fields. 👇
5051
*/
51-
revisionSavedOn: currentDateTime,
52-
revisionModifiedOn: currentDateTime,
52+
revisionSavedOn: getDate(currentDateTime),
53+
revisionModifiedOn: getDate(currentDateTime),
5354
revisionSavedBy: getIdentity(currentIdentity),
5455
revisionModifiedBy: getIdentity(currentIdentity),
55-
revisionFirstPublishedOn: originalEntry.revisionFirstPublishedOn || currentDateTime,
56+
revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),
5657
revisionFirstPublishedBy: getIdentity(
5758
originalEntry.revisionFirstPublishedBy,
5859
currentIdentity
5960
),
60-
revisionLastPublishedOn: currentDateTime,
61+
revisionLastPublishedOn: getDate(currentDateTime),
6162
revisionLastPublishedBy: getIdentity(currentIdentity),
6263

6364
webinyVersion: context.WEBINY_VERSION,

packages/api-headless-cms/src/crud/contentEntry/entryDataFactories/createUnpublishEntryData.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { CmsContext, CmsEntry, CmsModel } from "~/types";
22
import { STATUS_UNPUBLISHED } from "./statuses";
33
import { SecurityIdentity } from "@webiny/api-security/types";
44
import { getIdentity } from "~/utils/identity";
5+
import { getDate } from "~/utils/date";
56

67
type CreateRepublishEntryDataParams = {
78
model: CmsModel;
@@ -26,16 +27,16 @@ export const createUnpublishEntryData = async ({
2627
/**
2728
* Entry-level meta fields. 👇
2829
*/
29-
savedOn: currentDateTime,
30-
modifiedOn: currentDateTime,
30+
savedOn: getDate(currentDateTime),
31+
modifiedOn: getDate(currentDateTime),
3132
savedBy: getIdentity(currentIdentity),
3233
modifiedBy: getIdentity(currentIdentity),
3334

3435
/**
3536
* Revision-level meta fields. 👇
3637
*/
37-
revisionSavedOn: currentDateTime,
38-
revisionModifiedOn: currentDateTime,
38+
revisionSavedOn: getDate(currentDateTime),
39+
revisionModifiedOn: getDate(currentDateTime),
3940
revisionSavedBy: getIdentity(currentIdentity),
4041
revisionModifiedBy: getIdentity(currentIdentity)
4142
};

0 commit comments

Comments
 (0)