UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

27 lines 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.canReadProjectPolicy = void 0; const result_1 = require("true-myth/result"); const projects_js_1 = require("../../fragments/projects.js"); const canReadProjectPolicy = (loaders) => async ({ userId, projectId }) => { // All users may read public projects const isPubliclyReadable = await (0, projects_js_1.checkIfPubliclyReadableProjectFragment)(loaders)({ projectId }); if (isPubliclyReadable.isErr) { return (0, result_1.err)(isPubliclyReadable.error); } if (isPubliclyReadable.value) return (0, result_1.ok)(); // Not public. Ensure user has at least implicit membership & read access const hasReadAccess = await (0, projects_js_1.ensureImplicitProjectMemberWithReadAccessFragment)(loaders)({ userId, projectId }); if (hasReadAccess.isErr) { return (0, result_1.err)(hasReadAccess.error); } return (0, result_1.ok)(); }; exports.canReadProjectPolicy = canReadProjectPolicy; //# sourceMappingURL=canRead.js.map