UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

18 lines 1.95 kB
import { ServerNoAccessError, ServerNoSessionError, ServerNotEnoughPermissionsError, WorkspaceNoAccessError, WorkspacePlanNoFeatureAccessError, WorkspaceNotEnoughPermissionsError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../../domain/authErrors.js'; import { MaybeUserContext, WorkspaceContext } from '../../domain/context.js'; import { AuthCheckContextLoaderKeys } from '../../domain/loaders.js'; import { AuthPolicy } from '../../domain/policies.js'; import { WorkspacePlanFeatures } from '../../../workspaces/index.js'; type PolicyLoaderKeys = typeof AuthCheckContextLoaderKeys.getEnv | typeof AuthCheckContextLoaderKeys.getServerRole | typeof AuthCheckContextLoaderKeys.getWorkspace | typeof AuthCheckContextLoaderKeys.getWorkspaceRole | typeof AuthCheckContextLoaderKeys.getWorkspaceSsoProvider | typeof AuthCheckContextLoaderKeys.getWorkspaceSsoSession | typeof AuthCheckContextLoaderKeys.getWorkspacePlan; type PolicyArgs = MaybeUserContext & WorkspaceContext & { feature: WorkspacePlanFeatures; }; type PolicyErrors = InstanceType<typeof WorkspaceNoAccessError> | InstanceType<typeof WorkspaceSsoSessionNoAccessError> | InstanceType<typeof WorkspaceReadOnlyError> | InstanceType<typeof WorkspacesNotEnabledError> | InstanceType<typeof ServerNoSessionError> | InstanceType<typeof ServerNoAccessError> | InstanceType<typeof ServerNotEnoughPermissionsError> | InstanceType<typeof WorkspaceNotEnoughPermissionsError> | InstanceType<typeof WorkspacePlanNoFeatureAccessError>; /** * TODO: Refactor. Just use the fragment if you want to check if a workspace has access to a feature, * and create more specific policies for the actual use cases, cause policies shouldn't be reusable * building blocks like this. */ export declare const canUseWorkspacePlanFeature: AuthPolicy<PolicyLoaderKeys, PolicyArgs, PolicyErrors>; export {}; //# sourceMappingURL=canUseWorkspacePlanFeature.d.ts.map