Skip to content

Commit

Permalink
fix: sanitize identity-related fields in publishing-related entry fac…
Browse files Browse the repository at this point in the history
…tories
  • Loading branch information
adrians5j committed Jan 29, 2024
1 parent a7719b6 commit a009406
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { CmsContext, CmsEntry, CmsModel } from "~/types";
import { STATUS_PUBLISHED } from "./statuses";
import { SecurityIdentity } from "@webiny/api-security/types";
import { validateModelEntryDataOrThrow } from "~/crud/contentEntry/entryDataValidation";
import { getIdentity } from "~/utils/identity";

type CreatePublishEntryDataParams = {
model: CmsModel;
Expand Down Expand Up @@ -43,11 +44,11 @@ export const createPublishEntryData = async ({
savedOn: currentDateTime,
firstPublishedOn: latestEntry.firstPublishedOn || currentDateTime,
lastPublishedOn: currentDateTime,
createdBy: latestEntry.createdBy,
modifiedBy: currentIdentity,
savedBy: currentIdentity,
firstPublishedBy: latestEntry.firstPublishedBy || currentIdentity,
lastPublishedBy: currentIdentity,
createdBy: getIdentity(latestEntry.createdBy),
modifiedBy: getIdentity(currentIdentity),
savedBy: getIdentity(currentIdentity),
firstPublishedBy: getIdentity(latestEntry.firstPublishedBy, currentIdentity),
lastPublishedBy: getIdentity(currentIdentity),

/**
* Revision-level meta fields. 👇
Expand All @@ -57,11 +58,14 @@ export const createPublishEntryData = async ({
revisionModifiedOn: currentDateTime,
revisionFirstPublishedOn: originalEntry.revisionFirstPublishedOn || currentDateTime,
revisionLastPublishedOn: currentDateTime,
revisionCreatedBy: originalEntry.revisionCreatedBy,
revisionSavedBy: currentIdentity,
revisionModifiedBy: currentIdentity,
revisionFirstPublishedBy: originalEntry.revisionFirstPublishedBy || currentIdentity,
revisionLastPublishedBy: currentIdentity
revisionCreatedBy: getIdentity(originalEntry.revisionCreatedBy),
revisionSavedBy: getIdentity(currentIdentity),
revisionModifiedBy: getIdentity(currentIdentity),
revisionFirstPublishedBy: getIdentity(
originalEntry.revisionFirstPublishedBy,
currentIdentity
),
revisionLastPublishedBy: getIdentity(currentIdentity)
};

return { entry };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { CmsContext, CmsEntry, CmsModel } from "~/types";
import { referenceFieldsMapping } from "~/crud/contentEntry/referenceFieldsMapping";
import { STATUS_PUBLISHED } from "./statuses";
import { SecurityIdentity } from "@webiny/api-security/types";
import { getIdentity } from "~/utils/identity";

type CreateRepublishEntryDataParams = {
model: CmsModel;
Expand Down Expand Up @@ -37,24 +38,27 @@ export const createRepublishEntryData = async ({
*/
savedOn: currentDateTime,
modifiedOn: currentDateTime,
savedBy: currentIdentity,
modifiedBy: currentIdentity,
savedBy: getIdentity(currentIdentity),
modifiedBy: getIdentity(currentIdentity),
firstPublishedOn: originalEntry.firstPublishedOn || currentDateTime,
firstPublishedBy: originalEntry.firstPublishedBy || currentIdentity,
firstPublishedBy: getIdentity(originalEntry.firstPublishedBy, currentIdentity),
lastPublishedOn: currentDateTime,
lastPublishedBy: currentIdentity,
lastPublishedBy: getIdentity(currentIdentity),

/**
* Revision-level meta fields. 👇
*/
revisionSavedOn: currentDateTime,
revisionModifiedOn: currentDateTime,
revisionSavedBy: currentIdentity,
revisionModifiedBy: currentIdentity,
revisionSavedBy: getIdentity(currentIdentity),
revisionModifiedBy: getIdentity(currentIdentity),
revisionFirstPublishedOn: originalEntry.revisionFirstPublishedOn || currentDateTime,
revisionFirstPublishedBy: originalEntry.revisionFirstPublishedBy || currentIdentity,
revisionFirstPublishedBy: getIdentity(
originalEntry.revisionFirstPublishedBy,
currentIdentity
),
revisionLastPublishedOn: currentDateTime,
revisionLastPublishedBy: currentIdentity,
revisionLastPublishedBy: getIdentity(currentIdentity),

webinyVersion: context.WEBINY_VERSION,
values
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { CmsContext, CmsEntry, CmsModel } from "~/types";
import { STATUS_UNPUBLISHED } from "./statuses";
import { SecurityIdentity } from "@webiny/api-security/types";
import { getIdentity } from "~/utils/identity";

type CreateRepublishEntryDataParams = {
model: CmsModel;
Expand All @@ -27,16 +28,16 @@ export const createUnpublishEntryData = async ({
*/
savedOn: currentDateTime,
modifiedOn: currentDateTime,
savedBy: currentIdentity,
modifiedBy: currentIdentity,
savedBy: getIdentity(currentIdentity),
modifiedBy: getIdentity(currentIdentity),

/**
* Revision-level meta fields. 👇
*/
revisionSavedOn: currentDateTime,
revisionModifiedOn: currentDateTime,
revisionSavedBy: currentIdentity,
revisionModifiedBy: currentIdentity
revisionSavedBy: getIdentity(currentIdentity),
revisionModifiedBy: getIdentity(currentIdentity)
};

return { entry };
Expand Down

0 comments on commit a009406

Please sign in to comment.