diff --git a/src/auth/getExecuteStaticAccess.ts b/src/auth/getExecuteStaticAccess.ts index 8947c46ff0..3c9a01b7e6 100644 --- a/src/auth/getExecuteStaticAccess.ts +++ b/src/auth/getExecuteStaticAccess.ts @@ -1,4 +1,5 @@ import { Response, NextFunction } from 'express'; +import { Where } from '../types'; import executeAccess from './executeAccess'; import { Forbidden } from '../errors'; import { PayloadRequest } from '../express/types'; @@ -11,19 +12,33 @@ const getExecuteStaticAccess = ({ config, Model }) => async (req: PayloadRequest if (typeof accessResult === 'object') { const filename = decodeURI(req.path).replace(/^\/|\/$/g, ''); - const queryToBuild = { + const queryToBuild: { where: Where } = { where: { and: [ { - filename: { - equals: filename, - }, + or: [ + { + filename: { + equals: filename, + }, + }, + ], }, accessResult, ], }, }; + if (config.upload.imageSizes) { + config.upload.imageSizes.forEach(({ name }) => { + queryToBuild.where.and[0].or.push({ + [`sizes.${name}.filename`]: { + equals: filename, + }, + }); + }); + } + const query = await Model.buildQuery(queryToBuild, req.locale); const doc = await Model.findOne(query);