@speckle/shared
Version:
Shared code between various Speckle JS packages
23 lines • 892 B
JavaScript
import { err, ok } from 'true-myth/result';
import { ensureImplicitProjectMemberWithWriteAccessFragment } from '../../../fragments/projects.js';
import { ensureModelCanBeCreatedFragment } from '../../../fragments/workspaces.js';
export const canCreateModelPolicy = (loaders) => async ({ userId, projectId }) => {
// Ensure general write access
const ensureWriteAccess = await ensureImplicitProjectMemberWithWriteAccessFragment(loaders)({
userId,
projectId
});
if (ensureWriteAccess.isErr) {
return err(ensureWriteAccess.error);
}
// Ensure (workspace?) accepts models
const ensuredModelsAccepted = await ensureModelCanBeCreatedFragment(loaders)({
projectId,
userId
});
if (ensuredModelsAccepted.isErr) {
return err(ensuredModelsAccepted.error);
}
return ok();
};
//# sourceMappingURL=canCreate.js.map