UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 2.03 kB
{"version":3,"file":"check-media-access.mjs","names":[],"sources":["../../../../src/services/media/checks/check-media-access.ts"],"sourcesContent":["import { copy } from \"../../../libs/i18n/index.js\";\nimport { MediaRepository } from \"../../../libs/repositories/index.js\";\nimport type { ServiceFn } from \"../../../utils/services/types.js\";\n\n/**\n * Confirms media rows are visible in the current tenant scope before writes.\n * Tenant requests may act on their own media and global media.\n */\nconst checkMediaAccess: ServiceFn<\n\t[\n\t\t{\n\t\t\tid?: number;\n\t\t\tids?: number[];\n\t\t},\n\t],\n\tundefined\n> = async (context, data) => {\n\tconst ids = Array.from(\n\t\tnew Set(data.ids ?? (data.id !== undefined ? [data.id] : [])),\n\t);\n\n\tif (ids.length === 0) {\n\t\treturn {\n\t\t\terror: undefined,\n\t\t\tdata: undefined,\n\t\t};\n\t}\n\n\tconst Media = new MediaRepository(context.db.client, context.config.db);\n\tconst mediaRes = await Media.selectMultipleValidationData({\n\t\tids,\n\t\ttenantKey: context.request.tenantKey,\n\t\tvalidation: {\n\t\t\tenabled: true,\n\t\t},\n\t});\n\tif (mediaRes.error) return mediaRes;\n\n\tif (mediaRes.data.length !== ids.length) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\ttype: \"basic\",\n\t\t\t\tmessage: copy(\"server:core.media.not.found.message\"),\n\t\t\t\tstatus: 404,\n\t\t\t},\n\t\t\tdata: undefined,\n\t\t};\n\t}\n\n\treturn {\n\t\terror: undefined,\n\t\tdata: undefined,\n\t};\n};\n\nexport default checkMediaAccess;\n"],"mappings":"uGAQA,MAAM,EAQF,MAAO,EAAS,IAAS,CAC5B,IAAM,EAAM,MAAM,KACjB,IAAI,IAAI,EAAK,MAAQ,EAAK,KAAO,IAAA,GAAwB,CAAC,EAAb,CAAC,EAAK,EAAE,EAAO,CAC7D,EAEA,GAAI,EAAI,SAAW,EAClB,MAAO,CACN,MAAO,IAAA,GACP,KAAM,IAAA,EACP,EAID,IAAM,EAAW,MAAM,IADL,EAAgB,EAAQ,GAAG,OAAQ,EAAQ,OAAO,EACzC,CAAC,CAAC,6BAA6B,CACzD,MACA,UAAW,EAAQ,QAAQ,UAC3B,WAAY,CACX,QAAS,EACV,CACD,CAAC,EAcD,OAbI,EAAS,MAAc,EAEvB,EAAS,KAAK,SAAW,EAAI,OAW1B,CACN,MAAO,IAAA,GACP,KAAM,IAAA,EACP,EAbQ,CACN,MAAO,CACN,KAAM,QACN,QAAS,EAAK,qCAAqC,EACnD,OAAQ,GACT,EACA,KAAM,IAAA,EACP,CAOF"}