@strapi/content-manager 5.42.1 → 5.43.0
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/admin/hooks/useDocumentActions.js +5 -5
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +6 -6
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.js +37 -19
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.mjs +38 -20
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +29 -4
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +10 -4
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +30 -20
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +30 -20
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +19 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +19 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +34 -9
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +34 -9
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +22 -5
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +26 -9
- package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +19 -8
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +19 -8
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +37 -25
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +38 -26
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js +3 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +3 -0
- package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js +3 -2
- package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs +3 -2
- package/dist/admin/pages/ListView/components/TableCells/CellValue.mjs.map +1 -1
- package/dist/admin/services/documents.js +32 -7
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +32 -8
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +6 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +3 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +2 -0
- package/dist/admin/src/pages/ListConfiguration/ListConfigurationPage.d.ts +1 -1
- package/dist/admin/src/pages/ListView/components/TableCells/CellValue.d.ts +2 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +22 -17
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/translations/nl.json.js +180 -11
- package/dist/admin/translations/nl.json.js.map +1 -1
- package/dist/admin/translations/nl.json.mjs +180 -11
- package/dist/admin/translations/nl.json.mjs.map +1 -1
- package/dist/server/controllers/collection-types.js +32 -1
- package/dist/server/controllers/collection-types.js.map +1 -1
- package/dist/server/controllers/collection-types.mjs +33 -2
- package/dist/server/controllers/collection-types.mjs.map +1 -1
- package/dist/server/routes/admin.js +21 -0
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +21 -0
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts +1 -0
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-types.mjs","sources":["../../../server/src/controllers/collection-types.ts"],"sourcesContent":["import { isNil, omit } from 'lodash/fp';\n\nimport { setCreatorFields, async, contentTypes, errors } from '@strapi/utils';\nimport type { Modules, UID } from '@strapi/types';\n\nimport { getService } from '../utils';\nimport { validateBulkActionInput } from './validation';\nimport { getProhibitedCloningFields, excludeNotCreatableFields } from './utils/clone';\nimport { getDocumentLocaleAndStatus } from './validation/dimensions';\nimport { formatDocumentWithMetadata } from './utils/metadata';\nimport { indexByDocumentId } from './utils/document-status';\nimport { getPopulateForLocalizations } from '../services/utils/populate';\n\n/**\n * Returns documentIds for (documentId, locale) that have both draft and published,\n * optionally filtered by whether the draft is newer than the published row.\n * Uses strapi.documents only.\n */\nconst getDocumentIdsByDraftPublishRelation = async (\n uid: UID.ContentType,\n opts: {\n locale?: string | string[] | null;\n type: 'modified' | 'unmodified';\n }\n): Promise<string[]> => {\n const schema = strapi.getModel(uid);\n if (!contentTypes.hasDraftAndPublish(schema)) {\n return [];\n }\n\n const baseParams = {\n fields: ['documentId', 'locale', 'updatedAt'],\n page: 1,\n pageSize: 10000,\n ...(opts.locale != null &&\n opts.locale !== '*' && {\n locale: opts.locale as string,\n }),\n };\n\n const [drafts, published] = await Promise.all([\n strapi.documents(uid).findMany({ ...baseParams, status: 'draft' }),\n strapi.documents(uid).findMany({ ...baseParams, status: 'published' }),\n ]);\n\n const publishedByKey = new Map<string, { updatedAt: string }>();\n for (const p of published) {\n const key = `${p.documentId}\\t${String(p?.locale ?? '')}`;\n publishedByKey.set(key, { updatedAt: p.updatedAt as string });\n }\n\n const ids: string[] = [];\n const wantModified = opts.type === 'modified';\n for (const d of drafts) {\n const key = `${d.documentId}\\t${String(d?.locale ?? '')}`;\n const pub = publishedByKey.get(key);\n if (pub) {\n const dUpdated = d?.updatedAt ? new Date(d.updatedAt as string).getTime() : 0;\n const pUpdated = pub?.updatedAt ? new Date(pub.updatedAt).getTime() : 0;\n const isModified = dUpdated > pUpdated;\n if (isModified === wantModified) {\n ids.push(d.documentId as string);\n }\n }\n }\n return [...new Set(ids)];\n};\n\n/** Map from __status filter value to top-level query fields (mirrors client STATUS_PARAMS). */\nconst STATUS_QUERY_FROM_FILTER: Record<string, Record<string, string>> = {\n draft: { status: 'draft', hasPublishedVersion: 'false' },\n published: { status: 'published' },\n 'published-modified': { publicationStatusFilter: 'published-modified' },\n 'published-unmodified': { publicationStatusFilter: 'published-unmodified' },\n};\n\n/**\n * Extracts __status from query.filters.$and into top-level status, hasPublishedVersion,\n * and publicationStatusFilter so list works with either transformed params or raw filter params.\n */\nconst normalizeStatusFromFilters = (query: Record<string, unknown>): void => {\n const filters = query.filters as Record<string, unknown> | undefined;\n if (!filters?.$and || !Array.isArray(filters.$and)) return;\n\n const remainingFilters: unknown[] = [];\n const statusValues: string[] = [];\n\n for (const filter of filters.$and as Record<string, unknown>[]) {\n const eq = (filter?.__status as Record<string, unknown>)?.$eq;\n if (eq != null) {\n statusValues.push(String(eq));\n } else {\n remainingFilters.push(filter);\n }\n }\n\n if (statusValues.length === 0) return;\n\n const q = query as Record<string, unknown>;\n for (const value of statusValues) {\n const toApply = STATUS_QUERY_FROM_FILTER[value];\n if (toApply) Object.assign(q, toApply);\n }\n\n if (remainingFilters.length > 0) {\n (filters as Record<string, unknown>).$and = remainingFilters;\n } else {\n delete q.filters;\n }\n};\n\n/** Returns filters object that merges existing $and with a documentId $in filter. */\nconst mergeDocumentIdFilter = (\n existingFilters: Record<string, unknown> | undefined,\n documentIds: string[]\n): Record<string, unknown> => {\n const documentIdFilter = {\n documentId: documentIds.length > 0 ? { $in: documentIds } : { $in: [] },\n };\n let existingAnd: unknown[];\n if (existingFilters?.$and && Array.isArray(existingFilters.$and)) {\n existingAnd = existingFilters.$and;\n } else if (existingFilters && Object.keys(existingFilters).length > 0) {\n existingAnd = [existingFilters];\n } else {\n existingAnd = [];\n }\n return { $and: [...existingAnd, documentIdFilter] };\n};\n\ntype Options = Modules.Documents.Params.Pick<UID.ContentType, 'populate:object'>;\n\n/**\n * Create a new document.\n *\n * @param ctx - Koa context\n * @param opts - Options\n * @param opts.populate - Populate options of the returned document.\n * By default documentManager will populate all relations.\n */\nconst createDocument = async (ctx: any, opts?: Options) => {\n const { userAbility, user } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n const pickPermittedFields = permissionChecker.sanitizeCreateInput;\n const setCreator = setCreatorFields({ user });\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any);\n const sanitizedBody = await sanitizeFn(body);\n\n const { locale, status } = await getDocumentLocaleAndStatus(body, model);\n\n return documentManager.create(model, {\n data: sanitizedBody as any,\n locale,\n status,\n populate: opts?.populate,\n });\n\n // TODO: Revert the creation if create permission conditions are not met\n // if (permissionChecker.cannot.create(document)) {\n // throw new errors.ForbiddenError();\n // }\n};\n\n/**\n * Update a document version.\n * - If the document version exists, it will be updated.\n * - If the document version does not exist, a new document locale will be created.\n * By default documentManager will populate all relations.\n *\n * @param ctx - Koa context\n * @param opts - Options\n * @param opts.populate - Populate options of the returned document\n */\nconst updateDocument = async (ctx: any, opts?: Options) => {\n const { userAbility, user } = ctx.state;\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.update()) {\n throw new errors.ForbiddenError();\n }\n\n // Populate necessary fields to check permissions\n const permissionQuery = await permissionChecker.sanitizedQuery.update(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n // Load document version to update\n const [documentVersion, documentExists] = await Promise.all([\n documentManager.findOne(id, model, { populate, locale, status: 'draft' }),\n documentManager.exists(model, id),\n ]);\n\n if (!documentExists) {\n throw new errors.NotFoundError();\n }\n\n // If version is not found, but document exists,\n // the intent is to create a new document locale\n if (documentVersion) {\n if (permissionChecker.cannot.update(documentVersion)) {\n throw new errors.ForbiddenError();\n }\n } else if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n const pickPermittedFields = documentVersion\n ? permissionChecker.sanitizeUpdateInput(documentVersion)\n : permissionChecker.sanitizeCreateInput;\n const setCreator = documentVersion\n ? setCreatorFields({ user, isEdition: true })\n : setCreatorFields({ user });\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any);\n const sanitizedBody = await sanitizeFn(body);\n\n const updatedDocument = await documentManager.update(documentVersion?.documentId || id, model, {\n data: sanitizedBody as any,\n populate: opts?.populate,\n locale,\n });\n\n return updatedDocument;\n};\n\nexport default {\n async find(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { query } = ctx.request;\n\n // Normalize so status/publicationStatusFilter are set from filters.$and.__status when present\n normalizeStatusFromFilters(query as Record<string, unknown>);\n\n const documentMetadata = getService('document-metadata');\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.read(query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(1)\n .countRelations({ toOne: false, toMany: true })\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n // \"Modified\" is a UI-only filter; not a real document status. Read and strip it\n // so we never pass it to validation or the document service.\n const publicationStatusFilter = query.publicationStatusFilter;\n const queryForValidation = { ...query };\n delete queryForValidation.publicationStatusFilter;\n\n const { locale, status } = await getDocumentLocaleAndStatus(queryForValidation, model);\n\n const paramsForDocumentService = omit(['publicationStatusFilter'], permissionQuery) as Record<\n string,\n unknown\n >;\n let findPageParams: Record<string, unknown> = {\n ...paramsForDocumentService,\n populate,\n locale,\n status,\n };\n\n // Pass through hasPublishedVersion so \"Draft\" filter returns only drafts with no published version\n if (query.hasPublishedVersion !== undefined) {\n findPageParams.hasPublishedVersion = query.hasPublishedVersion;\n }\n\n if (\n publicationStatusFilter === 'published-modified' ||\n publicationStatusFilter === 'published-unmodified'\n ) {\n const type = publicationStatusFilter === 'published-modified' ? 'modified' : 'unmodified';\n const documentIds = await getDocumentIdsByDraftPublishRelation(model, { locale, type });\n findPageParams = {\n ...findPageParams,\n status: 'published',\n filters: mergeDocumentIdFilter(\n paramsForDocumentService.filters as Record<string, unknown> | undefined,\n documentIds\n ),\n };\n }\n\n const { results: documents, pagination } = await documentManager.findPage(\n findPageParams as Parameters<typeof documentManager.findPage>[0],\n model\n );\n\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(strapi.getModel(model));\n\n const statusByDocumentId = hasDraftAndPublish\n ? indexByDocumentId(await documentMetadata.getManyAvailableStatus(model, documents))\n : new Map();\n\n const setStatus = (document: any) => {\n // Available status of document\n const availableStatuses = statusByDocumentId.get(document.documentId) || [];\n // Compute document version status\n document.status = documentMetadata.getStatus(document, availableStatuses);\n return document;\n };\n\n const results = await async.map(\n documents,\n async.pipe(permissionChecker.sanitizeOutput, setStatus)\n );\n\n ctx.body = {\n results,\n pagination,\n };\n },\n\n async findOne(ctx: any) {\n const { userAbility } = ctx.state;\n const { model, id } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.read(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n const version = await documentManager.findOne(id, model, {\n populate,\n locale,\n status,\n });\n\n if (!version) {\n // Check if document exists\n const exists = await documentManager.exists(model, id);\n if (!exists) {\n return ctx.notFound();\n }\n\n // If the requested locale doesn't exist, return an empty response\n const { meta } = await formatDocumentWithMetadata(\n permissionChecker,\n model,\n // @ts-expect-error TODO: fix\n { documentId: id, locale, publishedAt: null },\n { availableLocales: true, availableStatus: false }\n );\n\n ctx.body = { data: {}, meta };\n\n return;\n }\n\n // if the user has condition that needs populated content, it's not applied because entity don't have relations populated\n if (permissionChecker.cannot.read(version)) {\n return ctx.forbidden();\n }\n\n // TODO: Count populated relations by permissions\n const sanitizedDocument = await permissionChecker.sanitizeOutput(version);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument);\n },\n\n async create(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n const [totalEntries, document] = await Promise.all([\n strapi.db.query(model).count(),\n createDocument(ctx),\n ]);\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(document);\n ctx.status = 201;\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument, {\n // Empty metadata as it's not relevant for a new document\n availableLocales: false,\n availableStatus: false,\n });\n\n if (totalEntries === 0) {\n strapi.telemetry.send('didCreateFirstContentTypeEntry', {\n eventProperties: { model },\n });\n }\n },\n\n async update(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n const updatedVersion = await updateDocument(ctx);\n\n const sanitizedVersion = await permissionChecker.sanitizeOutput(updatedVersion);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedVersion);\n },\n\n async clone(ctx: any) {\n const { userAbility, user } = ctx.state;\n const { model, sourceId: id } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.create()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.create(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'draft',\n });\n\n if (!document) {\n return ctx.notFound();\n }\n\n const pickPermittedFields = permissionChecker.sanitizeCreateInput;\n const setCreator = setCreatorFields({ user });\n const excludeNotCreatable = excludeNotCreatableFields(model, permissionChecker);\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any, excludeNotCreatable);\n const sanitizedBody = await sanitizeFn(body);\n\n const clonedDocument = await documentManager.clone(document.documentId, sanitizedBody, model);\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(clonedDocument);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument, {\n // Empty metadata as it's not relevant for a new document\n availableLocales: false,\n availableStatus: false,\n });\n },\n\n async autoClone(ctx: any) {\n const { model } = ctx.params;\n\n // Check if the model has fields that prevent auto cloning\n const prohibitedFields = getProhibitedCloningFields(model);\n\n if (prohibitedFields.length > 0) {\n return ctx.badRequest(\n 'Entity could not be cloned as it has unique and/or relational fields. ' +\n 'Please edit those fields manually and save to complete the cloning.',\n {\n prohibitedFields,\n }\n );\n }\n\n await this.clone(ctx);\n },\n\n async delete(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.delete()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.delete(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n // Find locales to delete\n const documentLocales = await documentManager.findLocales(id, model, { populate, locale });\n\n if (documentLocales.length === 0) {\n return ctx.notFound();\n }\n\n for (const document of documentLocales) {\n if (permissionChecker.cannot.delete(document)) {\n return ctx.forbidden();\n }\n }\n\n const result = await documentManager.delete(id, model, { locale });\n\n ctx.body = await permissionChecker.sanitizeOutput(result);\n },\n\n /**\n * Publish a document version.\n * Supports creating/saving a document and publishing it in one request.\n */\n async publish(ctx: any) {\n const { userAbility } = ctx.state;\n // If id does not exist, the document has to be created\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.publish()) {\n return ctx.forbidden();\n }\n\n const publishedDocument = await strapi.db.transaction(async () => {\n // Create or update document\n const permissionQuery = await permissionChecker.sanitizedQuery.publish(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n let document: any;\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n /**\n * Publish can be called on two scenarios:\n * 1. Create a new document and publish it in one request\n * 2. Update an existing document and publish it in one request\n *\n * Based on user permissions:\n * 1. User cannot create a document, but can publish\n * Action will be forbidden as user cannot create a document\n * 2. User can update and publish a document\n * Action will be allowed, but document will not be updated, only published with the latest draft\n */\n const isCreate = isNil(id);\n if (isCreate) {\n if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n document = await createDocument(ctx, { populate });\n }\n\n const isUpdate = !isCreate;\n if (isUpdate) {\n // check if the document exists\n const documentExists = await documentManager.exists(model, id);\n\n if (!documentExists) {\n throw new errors.NotFoundError('Document not found');\n }\n\n // check the document version\n document = await documentManager.findOne(id!, model, { populate, locale });\n\n if (!document) {\n // update and publish the new version\n if (\n permissionChecker.cannot.create({ locale }) ||\n permissionChecker.cannot.publish({ locale })\n ) {\n throw new errors.ForbiddenError();\n }\n document = await updateDocument(ctx);\n } else if (permissionChecker.can.update(document)) {\n await updateDocument(ctx);\n }\n }\n\n if (permissionChecker.cannot.publish(document)) {\n throw new errors.ForbiddenError();\n }\n\n const publishResult = await documentManager.publish(document.documentId, model, {\n locale,\n // TODO: Allow setting creator fields on publish\n // data: setCreatorFields({ user, isEdition: true })({}),\n });\n\n if (!publishResult || publishResult.length === 0) {\n throw new errors.NotFoundError('Document not found or already published.');\n }\n\n return publishResult[0];\n });\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(publishedDocument);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument);\n },\n\n async bulkPublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.publish()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.publish(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model, {\n allowMultipleLocales: true,\n });\n\n const entities = await documentManager.findLocales(documentIds, model, {\n populate,\n locale,\n isPublished: false,\n });\n\n for (const entity of entities) {\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.publish(entity)) {\n return ctx.forbidden();\n }\n }\n\n const count = await documentManager.publishMany(model, documentIds, locale);\n ctx.body = { count };\n },\n\n async bulkUnpublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.unpublish()) {\n return ctx.forbidden();\n }\n\n const { locale } = await getDocumentLocaleAndStatus(body, model, {\n allowMultipleLocales: true,\n });\n\n const entities = await documentManager.findLocales(documentIds, model, {\n locale,\n isPublished: true,\n });\n\n for (const entity of entities) {\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.publish(entity)) {\n return ctx.forbidden();\n }\n }\n\n const entitiesIds = entities.map((document) => document.documentId);\n\n const { count } = await documentManager.unpublishMany(entitiesIds, model, { locale });\n\n ctx.body = { count };\n },\n\n async unpublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n const {\n body: { discardDraft, ...body },\n } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.unpublish()) {\n return ctx.forbidden();\n }\n\n if (discardDraft && permissionChecker.cannot.discard()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.unpublish(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n // TODO allow multiple locales for bulk locale unpublish\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'published',\n });\n\n if (!document) {\n throw new errors.NotFoundError();\n }\n\n if (permissionChecker.cannot.unpublish(document)) {\n throw new errors.ForbiddenError();\n }\n\n if (discardDraft && permissionChecker.cannot.discard(document)) {\n throw new errors.ForbiddenError();\n }\n\n await strapi.db.transaction(async () => {\n if (discardDraft) {\n await documentManager.discardDraft(document.documentId, model, { locale });\n }\n\n ctx.body = await async.pipe(\n (document) => documentManager.unpublish(document.documentId, model, { locale }),\n permissionChecker.sanitizeOutput,\n (document) => formatDocumentWithMetadata(permissionChecker, model, document)\n )(document);\n });\n },\n\n async discard(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.discard()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.discard(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'published',\n });\n\n // Can not discard a document that is not published\n if (!document) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.discard(document)) {\n return ctx.forbidden();\n }\n\n ctx.body = await async.pipe(\n (document) => documentManager.discardDraft(document.documentId, model, { locale }),\n permissionChecker.sanitizeOutput,\n (document) => formatDocumentWithMetadata(permissionChecker, model, document)\n )(document);\n },\n\n async bulkDelete(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { query, body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.delete()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.delete(query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n const documentLocales = await documentManager.findLocales(documentIds, model, {\n populate,\n locale,\n });\n\n if (documentLocales.length === 0) {\n return ctx.notFound();\n }\n\n for (const document of documentLocales) {\n if (permissionChecker.cannot.delete(document)) {\n return ctx.forbidden();\n }\n }\n\n // We filter out documentsIds that maybe doesn't exist in a specific locale\n const localeDocumentsIds = documentLocales.map((document) => document.documentId);\n\n const { count } = await documentManager.deleteMany(localeDocumentsIds, model, { locale });\n\n ctx.body = { count };\n },\n\n async countDraftRelations(ctx: any) {\n const { userAbility } = ctx.state;\n const { model, id } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n if (permissionChecker.requiresEntity.read()) {\n // Only load what we need for access checks\n const entity = await documentManager.findOne(id, model, {\n locale,\n status,\n populate: {},\n });\n\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.read(entity)) {\n return ctx.forbidden();\n }\n }\n\n const number = await documentManager.countDraftRelations(id, model, locale);\n\n return {\n data: number,\n };\n },\n\n async countManyEntriesDraftRelations(ctx: any) {\n const { userAbility } = ctx.state;\n const ids = ctx.request.query.documentIds as string[];\n const locale = ctx.request.query.locale as string[];\n const { model } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const count = await strapi.db.query(model).count({\n where: { documentId: ids },\n });\n\n if (count === 0) {\n return ctx.notFound();\n }\n\n const number = await documentManager.countManyEntriesDraftRelations(ids, model, locale);\n\n return {\n data: number,\n };\n },\n};\n"],"names":["getDocumentIdsByDraftPublishRelation","uid","opts","schema","strapi","getModel","contentTypes","hasDraftAndPublish","baseParams","fields","page","pageSize","locale","drafts","published","Promise","all","documents","findMany","status","publishedByKey","Map","p","key","documentId","String","set","updatedAt","ids","wantModified","type","d","pub","get","dUpdated","Date","getTime","pUpdated","isModified","push","Set","STATUS_QUERY_FROM_FILTER","draft","hasPublishedVersion","publicationStatusFilter","normalizeStatusFromFilters","query","filters","$and","Array","isArray","remainingFilters","statusValues","filter","eq","__status","$eq","length","q","value","toApply","Object","assign","mergeDocumentIdFilter","existingFilters","documentIds","documentIdFilter","$in","existingAnd","keys","createDocument","ctx","userAbility","user","state","model","params","body","request","documentManager","getService","permissionChecker","create","cannot","errors","ForbiddenError","pickPermittedFields","sanitizeCreateInput","setCreator","setCreatorFields","sanitizeFn","async","pipe","sanitizedBody","getDocumentLocaleAndStatus","data","populate","updateDocument","id","update","permissionQuery","sanitizedQuery","populateFromQuery","build","documentVersion","documentExists","findOne","exists","NotFoundError","sanitizeUpdateInput","isEdition","updatedDocument","find","documentMetadata","read","forbidden","populateDeep","countRelations","toOne","toMany","withPopulateOverride","getPopulateForLocalizations","queryForValidation","paramsForDocumentService","omit","findPageParams","undefined","results","pagination","findPage","statusByDocumentId","indexByDocumentId","getManyAvailableStatus","setStatus","document","availableStatuses","getStatus","map","sanitizeOutput","Infinity","version","notFound","meta","formatDocumentWithMetadata","publishedAt","availableLocales","availableStatus","sanitizedDocument","totalEntries","db","count","telemetry","send","eventProperties","updatedVersion","sanitizedVersion","clone","sourceId","excludeNotCreatable","excludeNotCreatableFields","clonedDocument","autoClone","prohibitedFields","getProhibitedCloningFields","badRequest","delete","documentLocales","findLocales","result","publish","publishedDocument","transaction","isCreate","isNil","isUpdate","can","publishResult","bulkPublish","validateBulkActionInput","allowMultipleLocales","entities","isPublished","entity","publishMany","bulkUnpublish","unpublish","entitiesIds","unpublishMany","discardDraft","discard","bulkDelete","localeDocumentsIds","deleteMany","countDraftRelations","requiresEntity","number","countManyEntriesDraftRelations","where"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collection-types.mjs","sources":["../../../server/src/controllers/collection-types.ts"],"sourcesContent":["import { isNil, omit } from 'lodash/fp';\n\nimport { setCreatorFields, async, contentTypes, errors } from '@strapi/utils';\nimport type { Modules, UID } from '@strapi/types';\n\nimport { getService } from '../utils';\nimport { validateBulkActionInput } from './validation';\nimport { getProhibitedCloningFields, excludeNotCreatableFields } from './utils/clone';\nimport { getDocumentLocaleAndStatus } from './validation/dimensions';\nimport { formatDocumentWithMetadata } from './utils/metadata';\nimport { indexByDocumentId } from './utils/document-status';\nimport { getPopulateForLocalizations, buildDeepPopulate } from '../services/utils/populate';\n\n/**\n * Returns documentIds for (documentId, locale) that have both draft and published,\n * optionally filtered by whether the draft is newer than the published row.\n * Uses strapi.documents only.\n */\nconst getDocumentIdsByDraftPublishRelation = async (\n uid: UID.ContentType,\n opts: {\n locale?: string | string[] | null;\n type: 'modified' | 'unmodified';\n }\n): Promise<string[]> => {\n const schema = strapi.getModel(uid);\n if (!contentTypes.hasDraftAndPublish(schema)) {\n return [];\n }\n\n const baseParams = {\n fields: ['documentId', 'locale', 'updatedAt'],\n page: 1,\n pageSize: 10000,\n ...(opts.locale != null &&\n opts.locale !== '*' && {\n locale: opts.locale as string,\n }),\n };\n\n const [drafts, published] = await Promise.all([\n strapi.documents(uid).findMany({ ...baseParams, status: 'draft' }),\n strapi.documents(uid).findMany({ ...baseParams, status: 'published' }),\n ]);\n\n const publishedByKey = new Map<string, { updatedAt: string }>();\n for (const p of published) {\n const key = `${p.documentId}\\t${String(p?.locale ?? '')}`;\n publishedByKey.set(key, { updatedAt: p.updatedAt as string });\n }\n\n const ids: string[] = [];\n const wantModified = opts.type === 'modified';\n for (const d of drafts) {\n const key = `${d.documentId}\\t${String(d?.locale ?? '')}`;\n const pub = publishedByKey.get(key);\n if (pub) {\n const dUpdated = d?.updatedAt ? new Date(d.updatedAt as string).getTime() : 0;\n const pUpdated = pub?.updatedAt ? new Date(pub.updatedAt).getTime() : 0;\n const isModified = dUpdated > pUpdated;\n if (isModified === wantModified) {\n ids.push(d.documentId as string);\n }\n }\n }\n return [...new Set(ids)];\n};\n\n/** Map from __status filter value to top-level query fields (mirrors client STATUS_PARAMS). */\nconst STATUS_QUERY_FROM_FILTER: Record<string, Record<string, string>> = {\n draft: { status: 'draft', hasPublishedVersion: 'false' },\n published: { status: 'published' },\n 'published-modified': { publicationStatusFilter: 'published-modified' },\n 'published-unmodified': { publicationStatusFilter: 'published-unmodified' },\n};\n\n/**\n * Extracts __status from query.filters.$and into top-level status, hasPublishedVersion,\n * and publicationStatusFilter so list works with either transformed params or raw filter params.\n */\nconst normalizeStatusFromFilters = (query: Record<string, unknown>): void => {\n const filters = query.filters as Record<string, unknown> | undefined;\n if (!filters?.$and || !Array.isArray(filters.$and)) return;\n\n const remainingFilters: unknown[] = [];\n const statusValues: string[] = [];\n\n for (const filter of filters.$and as Record<string, unknown>[]) {\n const eq = (filter?.__status as Record<string, unknown>)?.$eq;\n if (eq != null) {\n statusValues.push(String(eq));\n } else {\n remainingFilters.push(filter);\n }\n }\n\n if (statusValues.length === 0) return;\n\n const q = query as Record<string, unknown>;\n for (const value of statusValues) {\n const toApply = STATUS_QUERY_FROM_FILTER[value];\n if (toApply) Object.assign(q, toApply);\n }\n\n if (remainingFilters.length > 0) {\n (filters as Record<string, unknown>).$and = remainingFilters;\n } else {\n delete q.filters;\n }\n};\n\n/** Returns filters object that merges existing $and with a documentId $in filter. */\nconst mergeDocumentIdFilter = (\n existingFilters: Record<string, unknown> | undefined,\n documentIds: string[]\n): Record<string, unknown> => {\n const documentIdFilter = {\n documentId: documentIds.length > 0 ? { $in: documentIds } : { $in: [] },\n };\n let existingAnd: unknown[];\n if (existingFilters?.$and && Array.isArray(existingFilters.$and)) {\n existingAnd = existingFilters.$and;\n } else if (existingFilters && Object.keys(existingFilters).length > 0) {\n existingAnd = [existingFilters];\n } else {\n existingAnd = [];\n }\n return { $and: [...existingAnd, documentIdFilter] };\n};\n\ntype Options = Modules.Documents.Params.Pick<UID.ContentType, 'populate:object'>;\n\n/**\n * Create a new document.\n *\n * @param ctx - Koa context\n * @param opts - Options\n * @param opts.populate - Populate options of the returned document.\n * By default documentManager will populate all relations.\n */\nconst createDocument = async (ctx: any, opts?: Options) => {\n const { userAbility, user } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n const pickPermittedFields = permissionChecker.sanitizeCreateInput;\n const setCreator = setCreatorFields({ user });\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any);\n const sanitizedBody = await sanitizeFn(body);\n\n const { locale, status } = await getDocumentLocaleAndStatus(body, model);\n\n return documentManager.create(model, {\n data: sanitizedBody as any,\n locale,\n status,\n populate: opts?.populate,\n });\n\n // TODO: Revert the creation if create permission conditions are not met\n // if (permissionChecker.cannot.create(document)) {\n // throw new errors.ForbiddenError();\n // }\n};\n\n/**\n * Update a document version.\n * - If the document version exists, it will be updated.\n * - If the document version does not exist, a new document locale will be created.\n * By default documentManager will populate all relations.\n *\n * @param ctx - Koa context\n * @param opts - Options\n * @param opts.populate - Populate options of the returned document\n */\nconst updateDocument = async (ctx: any, opts?: Options) => {\n const { userAbility, user } = ctx.state;\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.update()) {\n throw new errors.ForbiddenError();\n }\n\n // Populate necessary fields to check permissions\n const permissionQuery = await permissionChecker.sanitizedQuery.update(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n // Load document version to update\n const [documentVersion, documentExists] = await Promise.all([\n documentManager.findOne(id, model, { populate, locale, status: 'draft' }),\n documentManager.exists(model, id),\n ]);\n\n if (!documentExists) {\n throw new errors.NotFoundError();\n }\n\n // If version is not found, but document exists,\n // the intent is to create a new document locale\n if (documentVersion) {\n if (permissionChecker.cannot.update(documentVersion)) {\n throw new errors.ForbiddenError();\n }\n } else if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n const pickPermittedFields = documentVersion\n ? permissionChecker.sanitizeUpdateInput(documentVersion)\n : permissionChecker.sanitizeCreateInput;\n const setCreator = documentVersion\n ? setCreatorFields({ user, isEdition: true })\n : setCreatorFields({ user });\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any);\n const sanitizedBody = await sanitizeFn(body);\n\n const updatedDocument = await documentManager.update(documentVersion?.documentId || id, model, {\n data: sanitizedBody as any,\n populate: opts?.populate,\n locale,\n });\n\n return updatedDocument;\n};\n\nexport default {\n async find(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { query } = ctx.request;\n\n // Normalize so status/publicationStatusFilter are set from filters.$and.__status when present\n normalizeStatusFromFilters(query as Record<string, unknown>);\n\n const documentMetadata = getService('document-metadata');\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.read(query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(1)\n .countRelations({ toOne: false, toMany: true })\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n // \"Modified\" is a UI-only filter; not a real document status. Read and strip it\n // so we never pass it to validation or the document service.\n const publicationStatusFilter = query.publicationStatusFilter;\n const queryForValidation = { ...query };\n delete queryForValidation.publicationStatusFilter;\n\n const { locale, status } = await getDocumentLocaleAndStatus(queryForValidation, model);\n\n const paramsForDocumentService = omit(['publicationStatusFilter'], permissionQuery) as Record<\n string,\n unknown\n >;\n let findPageParams: Record<string, unknown> = {\n ...paramsForDocumentService,\n populate,\n locale,\n status,\n };\n\n // Pass through hasPublishedVersion so \"Draft\" filter returns only drafts with no published version\n if (query.hasPublishedVersion !== undefined) {\n findPageParams.hasPublishedVersion = query.hasPublishedVersion;\n }\n\n if (\n publicationStatusFilter === 'published-modified' ||\n publicationStatusFilter === 'published-unmodified'\n ) {\n const type = publicationStatusFilter === 'published-modified' ? 'modified' : 'unmodified';\n const documentIds = await getDocumentIdsByDraftPublishRelation(model, { locale, type });\n findPageParams = {\n ...findPageParams,\n status: 'published',\n filters: mergeDocumentIdFilter(\n paramsForDocumentService.filters as Record<string, unknown> | undefined,\n documentIds\n ),\n };\n }\n\n const { results: documents, pagination } = await documentManager.findPage(\n findPageParams as Parameters<typeof documentManager.findPage>[0],\n model\n );\n\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(strapi.getModel(model));\n\n const statusByDocumentId = hasDraftAndPublish\n ? indexByDocumentId(await documentMetadata.getManyAvailableStatus(model, documents))\n : new Map();\n\n const setStatus = (document: any) => {\n // Available status of document\n const availableStatuses = statusByDocumentId.get(document.documentId) || [];\n // Compute document version status\n document.status = documentMetadata.getStatus(document, availableStatuses);\n return document;\n };\n\n const results = await async.map(\n documents,\n async.pipe(permissionChecker.sanitizeOutput, setStatus)\n );\n\n ctx.body = {\n results,\n pagination,\n };\n },\n\n async findOne(ctx: any) {\n const { userAbility } = ctx.state;\n const { model, id } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.read(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n const version = await documentManager.findOne(id, model, {\n populate,\n locale,\n status,\n });\n\n if (!version) {\n // Check if document exists\n const exists = await documentManager.exists(model, id);\n if (!exists) {\n return ctx.notFound();\n }\n\n // If the requested locale doesn't exist, return an empty response\n const { meta } = await formatDocumentWithMetadata(\n permissionChecker,\n model,\n // @ts-expect-error TODO: fix\n { documentId: id, locale, publishedAt: null },\n { availableLocales: true, availableStatus: false }\n );\n\n ctx.body = { data: {}, meta };\n\n return;\n }\n\n // if the user has condition that needs populated content, it's not applied because entity don't have relations populated\n if (permissionChecker.cannot.read(version)) {\n return ctx.forbidden();\n }\n\n // TODO: Count populated relations by permissions\n const sanitizedDocument = await permissionChecker.sanitizeOutput(version);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument);\n },\n\n async create(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n const [totalEntries, document] = await Promise.all([\n strapi.db.query(model).count(),\n createDocument(ctx),\n ]);\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(document);\n ctx.status = 201;\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument, {\n // Empty metadata as it's not relevant for a new document\n availableLocales: false,\n availableStatus: false,\n });\n\n if (totalEntries === 0) {\n strapi.telemetry.send('didCreateFirstContentTypeEntry', {\n eventProperties: { model },\n });\n }\n },\n\n async update(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n const updatedVersion = await updateDocument(ctx);\n\n const sanitizedVersion = await permissionChecker.sanitizeOutput(updatedVersion);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedVersion);\n },\n\n async clone(ctx: any) {\n const { userAbility, user } = ctx.state;\n const { model, sourceId: id } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.create()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.create(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'draft',\n });\n\n if (!document) {\n return ctx.notFound();\n }\n\n const pickPermittedFields = permissionChecker.sanitizeCreateInput;\n const setCreator = setCreatorFields({ user });\n const excludeNotCreatable = excludeNotCreatableFields(model, permissionChecker);\n const sanitizeFn = async.pipe(pickPermittedFields, setCreator as any, excludeNotCreatable);\n const sanitizedBody = await sanitizeFn(body);\n\n const clonedDocument = await documentManager.clone(document.documentId, sanitizedBody, model);\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(clonedDocument);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument, {\n // Empty metadata as it's not relevant for a new document\n availableLocales: false,\n availableStatus: false,\n });\n },\n\n async autoClone(ctx: any) {\n const { model } = ctx.params;\n\n // Check if the model has fields that prevent auto cloning\n const prohibitedFields = getProhibitedCloningFields(model);\n\n if (prohibitedFields.length > 0) {\n return ctx.badRequest(\n 'Entity could not be cloned as it has unique and/or relational fields. ' +\n 'Please edit those fields manually and save to complete the cloning.',\n {\n prohibitedFields,\n }\n );\n }\n\n await this.clone(ctx);\n },\n\n async delete(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.delete()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.delete(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n // Find locales to delete\n const documentLocales = await documentManager.findLocales(id, model, { populate, locale });\n\n if (documentLocales.length === 0) {\n return ctx.notFound();\n }\n\n for (const document of documentLocales) {\n if (permissionChecker.cannot.delete(document)) {\n return ctx.forbidden();\n }\n }\n\n const result = await documentManager.delete(id, model, { locale });\n\n ctx.body = await permissionChecker.sanitizeOutput(result);\n },\n\n /**\n * Publish a document version.\n * Supports creating/saving a document and publishing it in one request.\n */\n async publish(ctx: any) {\n const { userAbility } = ctx.state;\n // If id does not exist, the document has to be created\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.publish()) {\n return ctx.forbidden();\n }\n\n const publishedDocument = await strapi.db.transaction(async () => {\n // Create or update document\n const permissionQuery = await permissionChecker.sanitizedQuery.publish(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .withPopulateOverride(getPopulateForLocalizations(model))\n .build();\n\n let document: any;\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n /**\n * Publish can be called on two scenarios:\n * 1. Create a new document and publish it in one request\n * 2. Update an existing document and publish it in one request\n *\n * Based on user permissions:\n * 1. User cannot create a document, but can publish\n * Action will be forbidden as user cannot create a document\n * 2. User can update and publish a document\n * Action will be allowed, but document will not be updated, only published with the latest draft\n */\n const isCreate = isNil(id);\n if (isCreate) {\n if (permissionChecker.cannot.create()) {\n throw new errors.ForbiddenError();\n }\n\n document = await createDocument(ctx, { populate });\n }\n\n const isUpdate = !isCreate;\n if (isUpdate) {\n // check if the document exists\n const documentExists = await documentManager.exists(model, id);\n\n if (!documentExists) {\n throw new errors.NotFoundError('Document not found');\n }\n\n // check the document version\n document = await documentManager.findOne(id!, model, { populate, locale });\n\n if (!document) {\n // update and publish the new version\n if (\n permissionChecker.cannot.create({ locale }) ||\n permissionChecker.cannot.publish({ locale })\n ) {\n throw new errors.ForbiddenError();\n }\n document = await updateDocument(ctx);\n } else if (permissionChecker.can.update(document)) {\n await updateDocument(ctx);\n }\n }\n\n if (permissionChecker.cannot.publish(document)) {\n throw new errors.ForbiddenError();\n }\n\n const publishResult = await documentManager.publish(document.documentId, model, {\n locale,\n // TODO: Allow setting creator fields on publish\n // data: setCreatorFields({ user, isEdition: true })({}),\n });\n\n if (!publishResult || publishResult.length === 0) {\n throw new errors.NotFoundError('Document not found or already published.');\n }\n\n return publishResult[0];\n });\n\n const sanitizedDocument = await permissionChecker.sanitizeOutput(publishedDocument);\n ctx.body = await formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument);\n },\n\n async bulkFindForValidation(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { documentIds, locale, sort } = ctx.request.body;\n\n await validateBulkActionInput(ctx.request.body);\n\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const populate = await buildDeepPopulate(model as UID.CollectionType);\n\n const documents = await strapi.documents(model as UID.CollectionType).findMany({\n populate,\n filters: { documentId: { $in: documentIds } } as any,\n locale,\n sort,\n status: 'draft',\n });\n\n const results = await Promise.all(documents.map(permissionChecker.sanitizeOutput));\n\n ctx.body = { results };\n },\n\n async bulkPublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.publish()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.publish(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .populateDeep(Infinity)\n .countRelations()\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model, {\n allowMultipleLocales: true,\n });\n\n const entities = await documentManager.findLocales(documentIds, model, {\n populate,\n locale,\n isPublished: false,\n });\n\n for (const entity of entities) {\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.publish(entity)) {\n return ctx.forbidden();\n }\n }\n\n const count = await documentManager.publishMany(model, documentIds, locale);\n ctx.body = { count };\n },\n\n async bulkUnpublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.unpublish()) {\n return ctx.forbidden();\n }\n\n const { locale } = await getDocumentLocaleAndStatus(body, model, {\n allowMultipleLocales: true,\n });\n\n const entities = await documentManager.findLocales(documentIds, model, {\n locale,\n isPublished: true,\n });\n\n for (const entity of entities) {\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.publish(entity)) {\n return ctx.forbidden();\n }\n }\n\n const entitiesIds = entities.map((document) => document.documentId);\n\n const { count } = await documentManager.unpublishMany(entitiesIds, model, { locale });\n\n ctx.body = { count };\n },\n\n async unpublish(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n const {\n body: { discardDraft, ...body },\n } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.unpublish()) {\n return ctx.forbidden();\n }\n\n if (discardDraft && permissionChecker.cannot.discard()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.unpublish(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n // TODO allow multiple locales for bulk locale unpublish\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'published',\n });\n\n if (!document) {\n throw new errors.NotFoundError();\n }\n\n if (permissionChecker.cannot.unpublish(document)) {\n throw new errors.ForbiddenError();\n }\n\n if (discardDraft && permissionChecker.cannot.discard(document)) {\n throw new errors.ForbiddenError();\n }\n\n await strapi.db.transaction(async () => {\n if (discardDraft) {\n await documentManager.discardDraft(document.documentId, model, { locale });\n }\n\n ctx.body = await async.pipe(\n (document) => documentManager.unpublish(document.documentId, model, { locale }),\n permissionChecker.sanitizeOutput,\n (document) => formatDocumentWithMetadata(permissionChecker, model, document)\n )(document);\n });\n },\n\n async discard(ctx: any) {\n const { userAbility } = ctx.state;\n const { id, model } = ctx.params;\n const { body } = ctx.request;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.discard()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.discard(ctx.query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n const document = await documentManager.findOne(id, model, {\n populate,\n locale,\n status: 'published',\n });\n\n // Can not discard a document that is not published\n if (!document) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.discard(document)) {\n return ctx.forbidden();\n }\n\n ctx.body = await async.pipe(\n (document) => documentManager.discardDraft(document.documentId, model, { locale }),\n permissionChecker.sanitizeOutput,\n (document) => formatDocumentWithMetadata(permissionChecker, model, document)\n )(document);\n },\n\n async bulkDelete(ctx: any) {\n const { userAbility } = ctx.state;\n const { model } = ctx.params;\n const { query, body } = ctx.request;\n const { documentIds } = body;\n\n await validateBulkActionInput(body);\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.delete()) {\n return ctx.forbidden();\n }\n\n const permissionQuery = await permissionChecker.sanitizedQuery.delete(query);\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const { locale } = await getDocumentLocaleAndStatus(body, model);\n\n const documentLocales = await documentManager.findLocales(documentIds, model, {\n populate,\n locale,\n });\n\n if (documentLocales.length === 0) {\n return ctx.notFound();\n }\n\n for (const document of documentLocales) {\n if (permissionChecker.cannot.delete(document)) {\n return ctx.forbidden();\n }\n }\n\n // We filter out documentsIds that maybe doesn't exist in a specific locale\n const localeDocumentsIds = documentLocales.map((document) => document.documentId);\n\n const { count } = await documentManager.deleteMany(localeDocumentsIds, model, { locale });\n\n ctx.body = { count };\n },\n\n async countDraftRelations(ctx: any) {\n const { userAbility } = ctx.state;\n const { model, id } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const { locale, status } = await getDocumentLocaleAndStatus(ctx.query, model);\n\n if (permissionChecker.requiresEntity.read()) {\n // Only load what we need for access checks\n const permissionQuery = await permissionChecker.sanitizedQuery.read(ctx.query);\n\n const populate = await getService('populate-builder')(model)\n .populateFromQuery(permissionQuery)\n .build();\n\n const entity = await documentManager.findOne(id, model, {\n locale,\n status,\n populate,\n });\n\n if (!entity) {\n return ctx.notFound();\n }\n\n if (permissionChecker.cannot.read(entity)) {\n return ctx.forbidden();\n }\n }\n\n const number = await documentManager.countDraftRelations(id, model, locale);\n\n return {\n data: number,\n };\n },\n\n async countManyEntriesDraftRelations(ctx: any) {\n const { userAbility } = ctx.state;\n const ids = ctx.request.query.documentIds as string[];\n const locale = ctx.request.query.locale as string[];\n const { model } = ctx.params;\n\n const documentManager = getService('document-manager');\n const permissionChecker = getService('permission-checker').create({ userAbility, model });\n\n if (permissionChecker.cannot.read()) {\n return ctx.forbidden();\n }\n\n const count = await strapi.db.query(model).count({\n where: { documentId: ids },\n });\n\n if (count === 0) {\n return ctx.notFound();\n }\n\n const number = await documentManager.countManyEntriesDraftRelations(ids, model, locale);\n\n return {\n data: number,\n };\n },\n};\n"],"names":["getDocumentIdsByDraftPublishRelation","uid","opts","schema","strapi","getModel","contentTypes","hasDraftAndPublish","baseParams","fields","page","pageSize","locale","drafts","published","Promise","all","documents","findMany","status","publishedByKey","Map","p","key","documentId","String","set","updatedAt","ids","wantModified","type","d","pub","get","dUpdated","Date","getTime","pUpdated","isModified","push","Set","STATUS_QUERY_FROM_FILTER","draft","hasPublishedVersion","publicationStatusFilter","normalizeStatusFromFilters","query","filters","$and","Array","isArray","remainingFilters","statusValues","filter","eq","__status","$eq","length","q","value","toApply","Object","assign","mergeDocumentIdFilter","existingFilters","documentIds","documentIdFilter","$in","existingAnd","keys","createDocument","ctx","userAbility","user","state","model","params","body","request","documentManager","getService","permissionChecker","create","cannot","errors","ForbiddenError","pickPermittedFields","sanitizeCreateInput","setCreator","setCreatorFields","sanitizeFn","async","pipe","sanitizedBody","getDocumentLocaleAndStatus","data","populate","updateDocument","id","update","permissionQuery","sanitizedQuery","populateFromQuery","build","documentVersion","documentExists","findOne","exists","NotFoundError","sanitizeUpdateInput","isEdition","updatedDocument","find","documentMetadata","read","forbidden","populateDeep","countRelations","toOne","toMany","withPopulateOverride","getPopulateForLocalizations","queryForValidation","paramsForDocumentService","omit","findPageParams","undefined","results","pagination","findPage","statusByDocumentId","indexByDocumentId","getManyAvailableStatus","setStatus","document","availableStatuses","getStatus","map","sanitizeOutput","Infinity","version","notFound","meta","formatDocumentWithMetadata","publishedAt","availableLocales","availableStatus","sanitizedDocument","totalEntries","db","count","telemetry","send","eventProperties","updatedVersion","sanitizedVersion","clone","sourceId","excludeNotCreatable","excludeNotCreatableFields","clonedDocument","autoClone","prohibitedFields","getProhibitedCloningFields","badRequest","delete","documentLocales","findLocales","result","publish","publishedDocument","transaction","isCreate","isNil","isUpdate","can","publishResult","bulkFindForValidation","sort","validateBulkActionInput","buildDeepPopulate","bulkPublish","allowMultipleLocales","entities","isPublished","entity","publishMany","bulkUnpublish","unpublish","entitiesIds","unpublishMany","discardDraft","discard","bulkDelete","localeDocumentsIds","deleteMany","countDraftRelations","requiresEntity","number","countManyEntriesDraftRelations","where"],"mappings":"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"}
|
|
@@ -508,6 +508,27 @@ var admin = {
|
|
|
508
508
|
]
|
|
509
509
|
}
|
|
510
510
|
},
|
|
511
|
+
{
|
|
512
|
+
method: 'POST',
|
|
513
|
+
path: '/collection-types/:model/actions/bulkFindForValidation',
|
|
514
|
+
handler: 'collection-types.bulkFindForValidation',
|
|
515
|
+
config: {
|
|
516
|
+
middlewares: [
|
|
517
|
+
routing
|
|
518
|
+
],
|
|
519
|
+
policies: [
|
|
520
|
+
'admin::isAuthenticatedAdmin',
|
|
521
|
+
{
|
|
522
|
+
name: 'plugin::content-manager.hasPermissions',
|
|
523
|
+
config: {
|
|
524
|
+
actions: [
|
|
525
|
+
'plugin::content-manager.explorer.read'
|
|
526
|
+
]
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
]
|
|
530
|
+
}
|
|
531
|
+
},
|
|
511
532
|
{
|
|
512
533
|
method: 'POST',
|
|
513
534
|
path: '/collection-types/:model/actions/bulkPublish',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { routing } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/init',\n handler: 'init.getInitData',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.findContentTypes',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types-settings',\n handler: 'content-types.findContentTypesSettings',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.findContentTypeConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.updateContentTypeConfiguration',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n\n {\n method: 'GET',\n path: '/components',\n handler: 'components.findComponents',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid/configuration',\n handler: 'components.findComponentConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid/configuration',\n handler: 'components.updateComponentConfiguration',\n config: {\n policies: [],\n },\n },\n\n {\n method: 'POST',\n path: '/uid/generate',\n handler: 'uid.generateUID',\n config: {\n policies: [],\n },\n },\n {\n method: 'POST',\n path: '/uid/check-availability',\n handler: 'uid.checkUIDAvailability',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:targetField',\n handler: 'relations.findAvailable',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:id/:targetField',\n handler: 'relations.findExisting',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model',\n handler: 'single-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/single-types/:model',\n handler: 'single-types.createOrUpdate',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: {\n actions: [\n 'plugin::content-manager.explorer.create',\n 'plugin::content-manager.explorer.update',\n ],\n hasAtLeastOne: true,\n },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/single-types/:model',\n handler: 'single-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/publish',\n handler: 'single-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/unpublish',\n handler: 'single-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/discard',\n handler: 'single-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model/actions/countDraftRelations',\n handler: 'single-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model',\n handler: 'collection-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model',\n handler: 'collection-types.create',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/clone/:sourceId',\n handler: 'collection-types.clone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/auto-clone/:sourceId',\n handler: 'collection-types.autoClone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.findOne',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.update',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/unpublish',\n handler: 'collection-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/discard',\n handler: 'collection-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkDelete',\n handler: 'collection-types.bulkDelete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkPublish',\n handler: 'collection-types.bulkPublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkUnpublish',\n handler: 'collection-types.bulkUnpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id/actions/countDraftRelations',\n handler: 'collection-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/actions/countManyEntriesDraftRelations',\n handler: 'collection-types.countManyEntriesDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","middlewares","routing","name","actions","hasAtLeastOne"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { routing } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/init',\n handler: 'init.getInitData',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.findContentTypes',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types-settings',\n handler: 'content-types.findContentTypesSettings',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.findContentTypeConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.updateContentTypeConfiguration',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n\n {\n method: 'GET',\n path: '/components',\n handler: 'components.findComponents',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid/configuration',\n handler: 'components.findComponentConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid/configuration',\n handler: 'components.updateComponentConfiguration',\n config: {\n policies: [],\n },\n },\n\n {\n method: 'POST',\n path: '/uid/generate',\n handler: 'uid.generateUID',\n config: {\n policies: [],\n },\n },\n {\n method: 'POST',\n path: '/uid/check-availability',\n handler: 'uid.checkUIDAvailability',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:targetField',\n handler: 'relations.findAvailable',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:id/:targetField',\n handler: 'relations.findExisting',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model',\n handler: 'single-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/single-types/:model',\n handler: 'single-types.createOrUpdate',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: {\n actions: [\n 'plugin::content-manager.explorer.create',\n 'plugin::content-manager.explorer.update',\n ],\n hasAtLeastOne: true,\n },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/single-types/:model',\n handler: 'single-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/publish',\n handler: 'single-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/unpublish',\n handler: 'single-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/discard',\n handler: 'single-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model/actions/countDraftRelations',\n handler: 'single-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model',\n handler: 'collection-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model',\n handler: 'collection-types.create',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/clone/:sourceId',\n handler: 'collection-types.clone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/auto-clone/:sourceId',\n handler: 'collection-types.autoClone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.findOne',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.update',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/unpublish',\n handler: 'collection-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/discard',\n handler: 'collection-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkDelete',\n handler: 'collection-types.bulkDelete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkFindForValidation',\n handler: 'collection-types.bulkFindForValidation',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkPublish',\n handler: 'collection-types.bulkPublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkUnpublish',\n handler: 'collection-types.bulkUnpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id/actions/countDraftRelations',\n handler: 'collection-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/actions/countManyEntriesDraftRelations',\n handler: 'collection-types.countManyEntriesDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","middlewares","routing","name","actions","hasAtLeastOne"],"mappings":"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"}
|
|
@@ -506,6 +506,27 @@ var admin = {
|
|
|
506
506
|
]
|
|
507
507
|
}
|
|
508
508
|
},
|
|
509
|
+
{
|
|
510
|
+
method: 'POST',
|
|
511
|
+
path: '/collection-types/:model/actions/bulkFindForValidation',
|
|
512
|
+
handler: 'collection-types.bulkFindForValidation',
|
|
513
|
+
config: {
|
|
514
|
+
middlewares: [
|
|
515
|
+
routing
|
|
516
|
+
],
|
|
517
|
+
policies: [
|
|
518
|
+
'admin::isAuthenticatedAdmin',
|
|
519
|
+
{
|
|
520
|
+
name: 'plugin::content-manager.hasPermissions',
|
|
521
|
+
config: {
|
|
522
|
+
actions: [
|
|
523
|
+
'plugin::content-manager.explorer.read'
|
|
524
|
+
]
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
]
|
|
528
|
+
}
|
|
529
|
+
},
|
|
509
530
|
{
|
|
510
531
|
method: 'POST',
|
|
511
532
|
path: '/collection-types/:model/actions/bulkPublish',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { routing } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/init',\n handler: 'init.getInitData',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.findContentTypes',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types-settings',\n handler: 'content-types.findContentTypesSettings',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.findContentTypeConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.updateContentTypeConfiguration',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n\n {\n method: 'GET',\n path: '/components',\n handler: 'components.findComponents',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid/configuration',\n handler: 'components.findComponentConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid/configuration',\n handler: 'components.updateComponentConfiguration',\n config: {\n policies: [],\n },\n },\n\n {\n method: 'POST',\n path: '/uid/generate',\n handler: 'uid.generateUID',\n config: {\n policies: [],\n },\n },\n {\n method: 'POST',\n path: '/uid/check-availability',\n handler: 'uid.checkUIDAvailability',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:targetField',\n handler: 'relations.findAvailable',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:id/:targetField',\n handler: 'relations.findExisting',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model',\n handler: 'single-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/single-types/:model',\n handler: 'single-types.createOrUpdate',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: {\n actions: [\n 'plugin::content-manager.explorer.create',\n 'plugin::content-manager.explorer.update',\n ],\n hasAtLeastOne: true,\n },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/single-types/:model',\n handler: 'single-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/publish',\n handler: 'single-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/unpublish',\n handler: 'single-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/discard',\n handler: 'single-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model/actions/countDraftRelations',\n handler: 'single-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model',\n handler: 'collection-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model',\n handler: 'collection-types.create',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/clone/:sourceId',\n handler: 'collection-types.clone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/auto-clone/:sourceId',\n handler: 'collection-types.autoClone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.findOne',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.update',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/unpublish',\n handler: 'collection-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/discard',\n handler: 'collection-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkDelete',\n handler: 'collection-types.bulkDelete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkPublish',\n handler: 'collection-types.bulkPublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkUnpublish',\n handler: 'collection-types.bulkUnpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id/actions/countDraftRelations',\n handler: 'collection-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/actions/countManyEntriesDraftRelations',\n handler: 'collection-types.countManyEntriesDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","middlewares","routing","name","actions","hasAtLeastOne"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { routing } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/init',\n handler: 'init.getInitData',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.findContentTypes',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types-settings',\n handler: 'content-types.findContentTypesSettings',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.findContentTypeConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid/configuration',\n handler: 'content-types.updateContentTypeConfiguration',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n\n {\n method: 'GET',\n path: '/components',\n handler: 'components.findComponents',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid/configuration',\n handler: 'components.findComponentConfiguration',\n config: {\n policies: [],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid/configuration',\n handler: 'components.updateComponentConfiguration',\n config: {\n policies: [],\n },\n },\n\n {\n method: 'POST',\n path: '/uid/generate',\n handler: 'uid.generateUID',\n config: {\n policies: [],\n },\n },\n {\n method: 'POST',\n path: '/uid/check-availability',\n handler: 'uid.checkUIDAvailability',\n config: {\n policies: [],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:targetField',\n handler: 'relations.findAvailable',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/relations/:model/:id/:targetField',\n handler: 'relations.findExisting',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model',\n handler: 'single-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/single-types/:model',\n handler: 'single-types.createOrUpdate',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: {\n actions: [\n 'plugin::content-manager.explorer.create',\n 'plugin::content-manager.explorer.update',\n ],\n hasAtLeastOne: true,\n },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/single-types/:model',\n handler: 'single-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/publish',\n handler: 'single-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/unpublish',\n handler: 'single-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/single-types/:model/actions/discard',\n handler: 'single-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/single-types/:model/actions/countDraftRelations',\n handler: 'single-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model',\n handler: 'collection-types.find',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model',\n handler: 'collection-types.create',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/clone/:sourceId',\n handler: 'collection-types.clone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/auto-clone/:sourceId',\n handler: 'collection-types.autoClone',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.create'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.findOne',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.update',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/collection-types/:model/:id',\n handler: 'collection-types.delete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/publish',\n handler: 'collection-types.publish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/unpublish',\n handler: 'collection-types.unpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/:id/actions/discard',\n handler: 'collection-types.discard',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.update'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkDelete',\n handler: 'collection-types.bulkDelete',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkFindForValidation',\n handler: 'collection-types.bulkFindForValidation',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkPublish',\n handler: 'collection-types.bulkPublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/collection-types/:model/actions/bulkUnpublish',\n handler: 'collection-types.bulkUnpublish',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.publish'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/:id/actions/countDraftRelations',\n handler: 'collection-types.countDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/collection-types/:model/actions/countManyEntriesDraftRelations',\n handler: 'collection-types.countManyEntriesDraftRelations',\n config: {\n middlewares: [routing],\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::content-manager.explorer.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","middlewares","routing","name","actions","hasAtLeastOne"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ declare const _default: {
|
|
|
11
11
|
* Supports creating/saving a document and publishing it in one request.
|
|
12
12
|
*/
|
|
13
13
|
publish(ctx: any): Promise<any>;
|
|
14
|
+
bulkFindForValidation(ctx: any): Promise<any>;
|
|
14
15
|
bulkPublish(ctx: any): Promise<any>;
|
|
15
16
|
bulkUnpublish(ctx: any): Promise<any>;
|
|
16
17
|
unpublish(ctx: any): Promise<any>;
|