UNPKG

@lucidcms/core

Version:

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

2 lines 970 B
import{copy as e}from"../../i18n/copy.mjs";import t from"../../../utils/errors/lucid-api-error.mjs";import{resolveCollectionPermission as n}from"../../permission/collection-permissions.mjs";import r from"../../permission/has-access.mjs";import{createMiddleware as i}from"hono/factory";const a=(a,o)=>i(async(i,s)=>{let c=o?.getCollectionKey?.(i)||i.req.param(`collectionKey`)||i.req.param(`key`),l=i.get(`config`).collections.find(e=>e.key===c);if(!l)throw new t({type:`basic`,name:e(`server:core.collections.permission.error.name`),message:e(`server:core.collections.not.found.message`),status:404});let u=n({collection:l,action:a});if(!r({user:i.get(`auth`),requiredPermissions:[u]}))throw new t({type:`basic`,name:e(`server:core.collections.permission.error.name`),message:e(`server:core.collections.permission.error.message`,{data:{collection:l.key,action:a}}),status:403});return await s()});export{a as default}; //# sourceMappingURL=collection-permissions.mjs.map