@payloadcms/next 3.0.0-beta.130 → 3.0.0-beta.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -2
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.d.ts +2 -2
- package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/initReq.d.ts +2 -2
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts +2 -2
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +1 -1
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/index.d.ts +2 -2
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +1 -1
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +2 -2
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts +2 -2
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +8 -3
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/getVersions.d.ts +2 -2
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/getVersions.js +1 -1
- package/dist/views/Document/getVersions.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts +2 -2
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +8 -8
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts +2 -2
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/List/index.js +2 -2
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +0 -7
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/Version/Default/index.js +1 -1
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/types.d.ts +2 -2
- package/dist/views/Version/Default/types.d.ts.map +1 -1
- package/dist/views/Version/Default/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +4 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +3 -3
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts +4 -2
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { I18nClient } from '@payloadcms/translations';
|
|
2
|
-
import type { PayloadRequest,
|
|
2
|
+
import type { PayloadRequest, SanitizedConfig, SanitizedPermissions, User } from 'payload';
|
|
3
3
|
type Result = {
|
|
4
4
|
i18n: I18nClient;
|
|
5
|
-
permissions:
|
|
5
|
+
permissions: SanitizedPermissions;
|
|
6
6
|
req: PayloadRequest;
|
|
7
7
|
user: User;
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAU1F,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,eAAO,MAAM,OAAO,kBACH,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,KACxD,OAAO,CAAC,MAAM,CAuCf,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","parseCookies","cache","getPayloadHMR","getRequestLanguage","initReq","configPromise","config","payload","cookies","languageCode","i18n","context","language","req","host","get","url","serverURL","permissions","user","auth"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type { PayloadRequest,
|
|
1
|
+
{"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","parseCookies","cache","getPayloadHMR","getRequestLanguage","initReq","configPromise","config","payload","cookies","languageCode","i18n","context","language","req","host","get","url","serverURL","permissions","user","auth"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type { PayloadRequest, SanitizedConfig, SanitizedPermissions, User } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, parseCookies } from 'payload'\nimport { cache } from 'react'\n\nimport { getPayloadHMR } from './getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Result = {\n i18n: I18nClient\n permissions: SanitizedPermissions\n req: PayloadRequest\n user: User\n}\n\nexport const initReq = cache(async function (\n configPromise: Promise<SanitizedConfig> | SanitizedConfig,\n): Promise<Result> {\n const config = await configPromise\n const payload = await getPayloadHMR({ config })\n\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n url: `${payload.config.serverURL}`,\n },\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n return {\n i18n,\n permissions,\n req,\n user,\n }\n})\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,cAAc,EAAEC,YAAY,QAAQ;AAC7C,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AASnC,OAAO,MAAMC,OAAA,GAAUH,KAAA,CAAM,gBAC3BI,aAAyD;EAEzD,MAAMC,MAAA,GAAS,MAAMD,aAAA;EACrB,MAAME,OAAA,GAAU,MAAML,aAAA,CAAc;IAAEI;EAAO;EAE7C,MAAMT,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMU,OAAA,GAAUR,YAAA,CAAaH,OAAA;EAE7B,MAAMY,YAAA,GAAeN,kBAAA,CAAmB;IACtCG,MAAA;IACAE,OAAA;IACAX;EACF;EAEA,MAAMa,IAAA,GAAmB,MAAMd,QAAA,CAAS;IACtCU,MAAA,EAAQA,MAAA,CAAOI,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUH;EACZ;EAEA,MAAMI,GAAA,GAAM,MAAMd,cAAA,CAChB;IACEc,GAAA,EAAK;MACHhB,OAAA;MACAiB,IAAA,EAAMjB,OAAA,CAAQkB,GAAG,CAAC;MAClBL,IAAA,EAAMA,IAAA;MACNM,GAAA,EAAK,GAAGT,OAAA,CAAQD,MAAM,CAACW,SAAS;IAClC;EACF,GACAV,OAAA;EAGF,MAAM;IAAEW,WAAW;IAAEC;EAAI,CAAE,GAAG,MAAMZ,OAAA,CAAQa,IAAI,CAAC;IAAEvB,OAAA;IAASgB;EAAI;EAEhE,OAAO;IACLH,IAAA;IACAQ,WAAA;IACAL,GAAA;IACAM;EACF;AACF","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DocumentPreferences, FormState, LoginWithUsernameOptions, SanitizedDocumentPermissions } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export declare const CreateFirstUserClient: React.FC<{
|
|
4
|
-
docPermissions:
|
|
4
|
+
docPermissions: SanitizedDocumentPermissions;
|
|
5
5
|
docPreferences: DocumentPreferences;
|
|
6
6
|
initialState: FormState;
|
|
7
7
|
loginWithUsername?: false | LoginWithUsernameOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAehB,OAAO,KAAoB,MAAM,OAAO,CAAA;AAExC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CA2FA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","formStateAbortControllerRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","current","controller","AbortController","response","operation","schemaPath","signal","state","handleFirstRegister","data","_jsxs","action","method","onSuccess","redirect","validationOperation","_jsx","className","readOnly","autoComplete","field","name","label","required","path","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","formStateAbortControllerRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","current","controller","AbortController","response","operation","schemaPath","signal","state","handleFirstRegister","data","_jsxs","action","method","onSuccess","redirect","validationOperation","_jsx","className","readOnly","autoComplete","field","name","label","required","path","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const formStateAbortControllerRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug }) as ClientCollectionConfig\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(formStateAbortControllerRef.current)\n\n const controller = new AbortController()\n formStateAbortControllerRef.current = controller\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: `_${userSlug}.auth`,\n signal: controller.signal,\n })\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n return () => {\n abortAndIgnore(formStateAbortControllerRef.current)\n }\n }, [])\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={initialState}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { groupNavItems } from '@payloadcms/ui/shared';
|
|
2
|
-
import type { ClientUser,
|
|
2
|
+
import type { ClientUser, SanitizedPermissions, ServerProps, VisibleEntities } from 'payload';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import './index.scss';
|
|
5
5
|
export type DashboardProps = {
|
|
@@ -14,7 +14,7 @@ export type DashboardProps = {
|
|
|
14
14
|
}>;
|
|
15
15
|
Link: React.ComponentType<any>;
|
|
16
16
|
navGroups?: ReturnType<typeof groupNavItems>;
|
|
17
|
-
permissions:
|
|
17
|
+
permissions: SanitizedPermissions;
|
|
18
18
|
visibleEntities: VisibleEntities;
|
|
19
19
|
} & ServerProps;
|
|
20
20
|
export declare const DefaultDashboard: React.FC<DashboardProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM7F,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IAC5C,WAAW,EAAE,oBAAoB,CAAA;IACjC,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmKrD,CAAA"}
|
|
@@ -89,7 +89,7 @@ export const DefaultDashboard = props => {
|
|
|
89
89
|
adminRoute,
|
|
90
90
|
path: `/collections/${slug}/create`
|
|
91
91
|
});
|
|
92
|
-
hasCreatePermission = permissions?.collections?.[slug]?.create
|
|
92
|
+
hasCreatePermission = permissions?.collections?.[slug]?.create;
|
|
93
93
|
}
|
|
94
94
|
if (type === EntityType.global) {
|
|
95
95
|
title = getTranslation(label, i18n);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","permission","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, Permissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: Permissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard && (\n <RenderServerComponent\n Component={beforeDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create?.permission\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n Link={Link}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard && (\n <RenderServerComponent\n Component={afterDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, SanitizedPermissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: SanitizedPermissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard && (\n <RenderServerComponent\n Component={beforeDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n Link={Link}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard && (\n <RenderServerComponent\n Component={afterDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyH9C,CAAA"}
|
|
@@ -27,8 +27,8 @@ export const Dashboard = async ({
|
|
|
27
27
|
visibleEntities
|
|
28
28
|
} = initPageResult;
|
|
29
29
|
const CustomDashboardComponent = config.admin.components?.views?.Dashboard;
|
|
30
|
-
const collections = config.collections.filter(collection => permissions?.collections?.[collection.slug]?.read
|
|
31
|
-
const globals = config.globals.filter(global => permissions?.globals?.[global.slug]?.read
|
|
30
|
+
const collections = config.collections.filter(collection => permissions?.collections?.[collection.slug]?.read && visibleEntities.collections.includes(collection.slug));
|
|
31
|
+
const globals = config.globals.filter(global => permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug));
|
|
32
32
|
// Query locked global documents only if there are globals in the config
|
|
33
33
|
let globalData = [];
|
|
34
34
|
if (config.globals.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","CustomDashboardComponent","admin","components","views","collections","filter","collection","slug","read","
|
|
1
|
+
{"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","CustomDashboardComponent","admin","components","views","collections","filter","collection","slug","read","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","where","globalSlug","exists","map","lockDurationDefault","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","updatedAt","_userEditing","value","navGroups","entityToGroup","type","entity","_jsxs","_jsx","nav","clientProps","Component","Fallback","importMap","serverProps"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = initPageResult\n\n const CustomDashboardComponent = config.admin.components?.views?.Dashboard\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDurationDefault = 300\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : lockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: lockedDoc?.updatedAt ?? null,\n _userEditing: lockedDoc?.user?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n <RenderServerComponent\n clientProps={{\n Link,\n locale,\n }}\n Component={CustomDashboardComponent}\n Fallback={DefaultDashboard}\n importMap={payload.importMap}\n serverProps={{\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Data,
|
|
1
|
+
import type { Data, PayloadRequest, SanitizedCollectionConfig, SanitizedDocumentPermissions, SanitizedGlobalConfig } from 'payload';
|
|
2
2
|
export declare const getDocumentPermissions: (args: {
|
|
3
3
|
collectionConfig?: SanitizedCollectionConfig;
|
|
4
4
|
data: Data;
|
|
@@ -6,7 +6,7 @@ export declare const getDocumentPermissions: (args: {
|
|
|
6
6
|
id?: number | string;
|
|
7
7
|
req: PayloadRequest;
|
|
8
8
|
}) => Promise<{
|
|
9
|
-
docPermissions:
|
|
9
|
+
docPermissions: SanitizedDocumentPermissions;
|
|
10
10
|
hasPublishPermission: boolean;
|
|
11
11
|
hasSavePermission: boolean;
|
|
12
12
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,4BAA4B,CAAA;IAC5C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAyFA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hasSavePermission as getHasSavePermission, isEditing as getIsEditing } from '@payloadcms/ui/shared';
|
|
2
|
-
import { docAccessOperation, docAccessOperationGlobal } from 'payload';
|
|
2
|
+
import { docAccessOperation, docAccessOperationGlobal, sanitizePermissions } from 'payload';
|
|
3
3
|
export const getDocumentPermissions = async args => {
|
|
4
4
|
const {
|
|
5
5
|
id,
|
|
@@ -73,9 +73,14 @@ export const getDocumentPermissions = async args => {
|
|
|
73
73
|
req.payload.logger.error(error);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
// TODO: do this in a better way. Only doing this bc this is how the fn was written (mutates the original object)
|
|
77
|
+
const sanitizedDocPermissions = {
|
|
78
|
+
...docPermissions
|
|
79
|
+
};
|
|
80
|
+
sanitizePermissions(sanitizedDocPermissions);
|
|
76
81
|
const hasSavePermission = getHasSavePermission({
|
|
77
82
|
collectionSlug: collectionConfig?.slug,
|
|
78
|
-
docPermissions,
|
|
83
|
+
docPermissions: sanitizedDocPermissions,
|
|
79
84
|
globalSlug: globalConfig?.slug,
|
|
80
85
|
isEditing: getIsEditing({
|
|
81
86
|
id,
|
|
@@ -84,7 +89,7 @@ export const getDocumentPermissions = async args => {
|
|
|
84
89
|
})
|
|
85
90
|
});
|
|
86
91
|
return {
|
|
87
|
-
docPermissions,
|
|
92
|
+
docPermissions: sanitizedDocPermissions,
|
|
88
93
|
hasPublishPermission,
|
|
89
94
|
hasSavePermission
|
|
90
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","toString","collection","config","_status","versions","drafts","then","update","permission","error","payload","logger","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPermissions,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions:
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","sanitizePermissions","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","toString","collection","config","_status","versions","drafts","then","update","permission","error","payload","logger","sanitizedDocPermissions","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPermissions,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal, sanitizePermissions } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: SanitizedDocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: DocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'draft',\n },\n },\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n req.payload.logger.error(error)\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data,\n },\n })\n\n if (globalConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n req.payload.logger.error(error)\n }\n }\n\n // TODO: do this in a better way. Only doing this bc this is how the fn was written (mutates the original object)\n const sanitizedDocPermissions = { ...docPermissions } as any as SanitizedDocumentPermissions\n sanitizePermissions(sanitizedDocPermissions)\n\n const hasSavePermission = getHasSavePermission({\n collectionSlug: collectionConfig?.slug,\n docPermissions: sanitizedDocPermissions,\n globalSlug: globalConfig?.slug,\n isEditing: getIsEditing({\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n }),\n })\n\n return {\n docPermissions: sanitizedDocPermissions,\n hasPublishPermission,\n hasSavePermission,\n }\n}\n"],"mappings":"AASA,SACEA,iBAAA,IAAqBC,oBAAoB,EACzCC,SAAA,IAAaC,YAAY,QACpB;AACP,SAASC,kBAAkB,EAAEC,wBAAwB,EAAEC,mBAAmB,QAAQ;AAElF,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAW3C,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,IAAA,GAAO,CAAC,CAAC;IAAEC,YAAY;IAAEC;EAAG,CAAE,GAAGL,IAAA;EAE/D,IAAIM,cAAA;EACJ,IAAIC,oBAAA,GAAuB;EAE3B,IAAIL,gBAAA,EAAkB;IACpB,IAAI;MACFI,cAAA,GAAiB,MAAMV,kBAAA,CAAmB;QACxCK,EAAA,EAAIA,EAAA,EAAIO,QAAA;QACRC,UAAA,EAAY;UACVC,MAAA,EAAQR;QACV;QACAG,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPQ,OAAA,EAAS;UACX;QACF;MACF;MAEA,IAAIT,gBAAA,CAAiBU,QAAQ,EAAEC,MAAA,EAAQ;QACrCN,oBAAA,GAAuB,MAAMX,kBAAA,CAAmB;UAC9CK,EAAA,EAAIA,EAAA,EAAIO,QAAA;UACRC,UAAA,EAAY;YACVC,MAAA,EAAQR;UACV;UACAG,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA,IAAIb,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMT,wBAAA,CAAyB;QAC9CO,YAAA;QACAC,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF;QACF;MACF;MAEA,IAAIC,YAAA,CAAaQ,QAAQ,EAAEC,MAAA,EAAQ;QACjCN,oBAAA,GAAuB,MAAMV,wBAAA,CAAyB;UACpDO,YAAA;UACAC,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA;EACA,MAAMG,uBAAA,GAA0B;IAAE,GAAGd;EAAe;EACpDR,mBAAA,CAAoBsB,uBAAA;EAEpB,MAAM5B,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7C4B,cAAA,EAAgBnB,gBAAA,EAAkBoB,IAAA;IAClChB,cAAA,EAAgBc,uBAAA;IAChBG,UAAA,EAAYnB,YAAA,EAAckB,IAAA;IAC1B5B,SAAA,EAAWC,YAAA,CAAa;MACtBM,EAAA;MACAoB,cAAA,EAAgBnB,gBAAA,EAAkBoB,IAAA;MAClCC,UAAA,EAAYnB,YAAA,EAAckB;IAC5B;EACF;EAEA,OAAO;IACLhB,cAAA,EAAgBc,uBAAA;IAChBb,oBAAA;IACAf;EACF;AACF","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Payload, SanitizedCollectionConfig, SanitizedDocumentPermissions, SanitizedGlobalConfig, TypedUser } from 'payload';
|
|
2
2
|
type Args = {
|
|
3
3
|
collectionConfig?: SanitizedCollectionConfig;
|
|
4
|
-
docPermissions:
|
|
4
|
+
docPermissions: SanitizedDocumentPermissions;
|
|
5
5
|
globalConfig?: SanitizedGlobalConfig;
|
|
6
6
|
id?: number | string;
|
|
7
7
|
locale?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAIF,eAAO,MAAM,WAAW,mFAQrB,IAAI,KAAG,MA4MT,CAAA"}
|
|
@@ -16,7 +16,7 @@ export const getVersions = async ({
|
|
|
16
16
|
let versionCount = 0;
|
|
17
17
|
const entityConfig = collectionConfig || globalConfig;
|
|
18
18
|
const versionsConfig = entityConfig?.versions;
|
|
19
|
-
const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions
|
|
19
|
+
const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions);
|
|
20
20
|
if (!shouldFetchVersions) {
|
|
21
21
|
const hasPublishedDoc = Boolean(collectionConfig && id || globalConfig);
|
|
22
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.js","names":["getVersions","id","collectionConfig","docPermissions","globalConfig","locale","payload","user","publishedQuery","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","
|
|
1
|
+
{"version":3,"file":"getVersions.js","names":["getVersions","id","collectionConfig","docPermissions","globalConfig","locale","payload","user","publishedQuery","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","find","collection","slug","depth","undefined","where","and","or","_status","equals","exists","docs","autosave","mostRecentVersion","findVersions","limit","parent","updatedAt","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","select","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: TypedUser\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\nexport const getVersions = async ({\n id,\n collectionConfig,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n let publishedQuery\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n const hasPublishedDoc = Boolean((collectionConfig && id) || globalConfig)\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (versionsConfig?.drafts) {\n publishedQuery = await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n locale: locale || undefined,\n user,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (publishedQuery.docs?.[0]) {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedQuery.docs?.[0]?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedQuery.docs[0].updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n }))\n }\n\n if (globalConfig) {\n if (versionsConfig?.drafts) {\n publishedQuery = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n user,\n })\n\n if (publishedQuery?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedQuery?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedQuery.updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdminViewProps,
|
|
1
|
+
import type { AdminViewProps, PayloadComponent, SanitizedCollectionConfig, SanitizedCollectionPermission, SanitizedConfig, SanitizedGlobalConfig, SanitizedGlobalPermission, ServerSideEditViewProps } from 'payload';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
export type ViewFromConfig<TProps extends object> = {
|
|
4
4
|
Component?: React.FC<TProps>;
|
|
@@ -10,7 +10,7 @@ export declare const getViewsFromConfig: ({ collectionConfig, config, docPermiss
|
|
|
10
10
|
globalConfig?: SanitizedGlobalConfig;
|
|
11
11
|
routeSegments: string[];
|
|
12
12
|
} & ({
|
|
13
|
-
docPermissions:
|
|
13
|
+
docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission;
|
|
14
14
|
overrideDocPermissions?: false | undefined;
|
|
15
15
|
} | {
|
|
16
16
|
docPermissions?: never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAsXH,CAAA"}
|
|
@@ -28,7 +28,7 @@ export const getViewsFromConfig = ({
|
|
|
28
28
|
const livePreviewEnabled = collectionConfig && collectionConfig?.admin?.livePreview || config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) || globalConfig && globalConfig?.admin?.livePreview || config?.admin?.livePreview?.globals?.includes(globalConfig?.slug);
|
|
29
29
|
if (collectionConfig) {
|
|
30
30
|
const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] = routeSegments;
|
|
31
|
-
if (!overrideDocPermissions && !docPermissions?.read
|
|
31
|
+
if (!overrideDocPermissions && !docPermissions?.read) {
|
|
32
32
|
throw new Error('not-found');
|
|
33
33
|
} else {
|
|
34
34
|
// `../:id`, or `../create`
|
|
@@ -38,7 +38,7 @@ export const getViewsFromConfig = ({
|
|
|
38
38
|
switch (segment3) {
|
|
39
39
|
case 'create':
|
|
40
40
|
{
|
|
41
|
-
if (!overrideDocPermissions && 'create' in docPermissions && docPermissions
|
|
41
|
+
if (!overrideDocPermissions && 'create' in docPermissions && docPermissions.create) {
|
|
42
42
|
CustomView = {
|
|
43
43
|
ComponentConfig: getCustomViewByKey(views, 'default')
|
|
44
44
|
};
|
|
@@ -112,7 +112,7 @@ export const getViewsFromConfig = ({
|
|
|
112
112
|
}
|
|
113
113
|
case 'versions':
|
|
114
114
|
{
|
|
115
|
-
if (!overrideDocPermissions && docPermissions?.readVersions
|
|
115
|
+
if (!overrideDocPermissions && docPermissions?.readVersions) {
|
|
116
116
|
CustomView = {
|
|
117
117
|
ComponentConfig: getCustomViewByKey(views, 'versions')
|
|
118
118
|
};
|
|
@@ -153,7 +153,7 @@ export const getViewsFromConfig = ({
|
|
|
153
153
|
default:
|
|
154
154
|
{
|
|
155
155
|
if (segment4 === 'versions') {
|
|
156
|
-
if (!overrideDocPermissions && docPermissions?.readVersions
|
|
156
|
+
if (!overrideDocPermissions && docPermissions?.readVersions) {
|
|
157
157
|
CustomView = {
|
|
158
158
|
ComponentConfig: getCustomViewByKey(views, 'version')
|
|
159
159
|
};
|
|
@@ -190,7 +190,7 @@ export const getViewsFromConfig = ({
|
|
|
190
190
|
}
|
|
191
191
|
if (globalConfig) {
|
|
192
192
|
const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments;
|
|
193
|
-
if (!overrideDocPermissions && !docPermissions?.read
|
|
193
|
+
if (!overrideDocPermissions && !docPermissions?.read) {
|
|
194
194
|
throw new Error('not-found');
|
|
195
195
|
} else {
|
|
196
196
|
switch (routeSegments.length) {
|
|
@@ -234,7 +234,7 @@ export const getViewsFromConfig = ({
|
|
|
234
234
|
}
|
|
235
235
|
case 'versions':
|
|
236
236
|
{
|
|
237
|
-
if (!overrideDocPermissions && docPermissions?.readVersions
|
|
237
|
+
if (!overrideDocPermissions && docPermissions?.readVersions) {
|
|
238
238
|
CustomView = {
|
|
239
239
|
ComponentConfig: getCustomViewByKey(views, 'versions')
|
|
240
240
|
};
|
|
@@ -250,7 +250,7 @@ export const getViewsFromConfig = ({
|
|
|
250
250
|
}
|
|
251
251
|
default:
|
|
252
252
|
{
|
|
253
|
-
if (!overrideDocPermissions && docPermissions?.read
|
|
253
|
+
if (!overrideDocPermissions && docPermissions?.read) {
|
|
254
254
|
const baseRoute = [adminRoute, globalEntity, globalSlug, segment3].filter(Boolean).join('/');
|
|
255
255
|
const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/');
|
|
256
256
|
const {
|
|
@@ -285,7 +285,7 @@ export const getViewsFromConfig = ({
|
|
|
285
285
|
{
|
|
286
286
|
// `../:slug/versions/:version`, etc
|
|
287
287
|
if (segment3 === 'versions') {
|
|
288
|
-
if (!overrideDocPermissions && docPermissions?.readVersions
|
|
288
|
+
if (!overrideDocPermissions && docPermissions?.readVersions) {
|
|
289
289
|
CustomView = {
|
|
290
290
|
ComponentConfig: getCustomViewByKey(views, 'version')
|
|
291
291
|
};
|