{"version":3,"file":"authorize-private-media.mjs","names":["constants"],"sources":["../../../../src/libs/http/middleware/authorize-private-media.ts"],"sourcesContent":["import { createMiddleware } from \"hono/factory\";\nimport constants from \"../../../constants/constants.js\";\nimport type { LucidHonoContext } from \"../../../types/hono.js\";\nimport { LucidAPIError } from \"../../../utils/errors/index.js\";\nimport { multiTenancyEnabled } from \"../../../utils/helpers/index.js\";\nimport {\n\tgetKeyVisibility,\n\tgetMediaKeyTenantKey,\n\tnormalizeMediaKey,\n} from \"../../../utils/media/index.js\";\nimport { copy } from \"../../i18n/index.js\";\nimport { authenticationCheck } from \"./authenticate.js\";\n\n/**\n * Determines if a private media request should proceed\n *\n * @todo Add support for team and user specific private media\n */\nconst authorizePrivateMedia = createMiddleware(\n\tasync (c: LucidHonoContext, next) => {\n\t\tconst { key } = c.req.param();\n\n\t\t//* try and use this middleware after the validate params one in the controller so this isnt ever hit - validation middleware will have nicer error messages\n\t\tif (!key) {\n\t\t\tthrow new LucidAPIError({\n\t\t\t\ttype: \"validation\",\n\t\t\t\tmessage: copy(\"server:core.errors.validation.message\"),\n\t\t\t});\n\t\t}\n\n\t\tconst normalizedKey = normalizeMediaKey(key);\n\t\tconst keyVisibility = getKeyVisibility(normalizedKey);\n\n\t\tif (keyVisibility === constants.media.visibilityKeys.private) {\n\t\t\tawait authenticationCheck(c);\n\n\t\t\tconst tenantKey = getMediaKeyTenantKey(normalizedKey);\n\t\t\tconst auth = c.get(\"auth\");\n\t\t\tif (\n\t\t\t\ttenantKey &&\n\t\t\t\tmultiTenancyEnabled(c.get(\"config\")) &&\n\t\t\t\t!auth.superAdmin &&\n\t\t\t\t!auth.tenantKeys.includes(tenantKey)\n\t\t\t) {\n\t\t\t\tthrow new LucidAPIError({\n\t\t\t\t\ttype: \"authorisation\",\n\t\t\t\t\tmessage: copy(\"server:core.tenants.no.access\"),\n\t\t\t\t\tstatus: 403,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn await next();\n\t},\n);\n\nexport default authorizePrivateMedia;\n"],"mappings":"8gBAkBA,MAAM,EAAwB,EAC7B,MAAO,EAAqB,IAAS,CACpC,GAAM,CAAE,OAAQ,EAAE,IAAI,MAAM,EAG5B,GAAI,CAAC,EACJ,MAAM,IAAI,EAAc,CACvB,KAAM,aACN,QAAS,EAAK,uCAAuC,CACtD,CAAC,EAGF,IAAM,EAAgB,EAAkB,CAAG,EAG3C,GAFsB,EAAiB,CAEvB,IAAMA,EAAU,MAAM,eAAe,QAAS,CAC7D,MAAM,EAAoB,CAAC,EAE3B,IAAM,EAAY,EAAqB,CAAa,EAC9C,EAAO,EAAE,IAAI,MAAM,EACzB,GACC,GACA,EAAoB,EAAE,IAAI,QAAQ,CAAC,GACnC,CAAC,EAAK,YACN,CAAC,EAAK,WAAW,SAAS,CAAS,EAEnC,MAAM,IAAI,EAAc,CACvB,KAAM,gBACN,QAAS,EAAK,+BAA+B,EAC7C,OAAQ,GACT,CAAC,CAEH,CAEA,OAAO,MAAM,EAAK,CACnB,CACD"}