UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

23 lines 909 B
import { err, ok } from 'true-myth/result'; import { checkIfPubliclyReadableProjectFragment, ensureImplicitProjectMemberWithReadAccessFragment } from '../../fragments/projects.js'; export const canReadProjectPolicy = (loaders) => async ({ userId, projectId }) => { // All users may read public projects const isPubliclyReadable = await checkIfPubliclyReadableProjectFragment(loaders)({ projectId }); if (isPubliclyReadable.isErr) { return err(isPubliclyReadable.error); } if (isPubliclyReadable.value) return ok(); // Not public. Ensure user has at least implicit membership & read access const hasReadAccess = await ensureImplicitProjectMemberWithReadAccessFragment(loaders)({ userId, projectId }); if (hasReadAccess.isErr) { return err(hasReadAccess.error); } return ok(); }; //# sourceMappingURL=canRead.js.map