@speckle/shared
Version:
Shared code between various Speckle JS packages
37 lines • 3.01 kB
TypeScript
import { AuthPolicyEnsureFragment } from '../domain/policies.js';
import { PersonalProjectsLimitedError, ProjectNotFoundError, WorkspaceLimitsReachedError, WorkspaceNoAccessError, WorkspaceNoEditorSeatError, WorkspaceNotEnoughPermissionsError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
import { Loaders } from '../domain/loaders.js';
import { WorkspaceRoles } from '../../core/constants.js';
import { MaybeUserContext, MaybeWorkspaceContext, ProjectContext, WorkspaceContext } from '../domain/context.js';
/**
* Ensure user has a workspace role, and a valid SSO session (if SSO is configured)
*/
export declare const ensureWorkspaceRoleAndSessionFragment: AuthPolicyEnsureFragment<'getWorkspaceRole' | 'getWorkspaceSsoProvider' | 'getWorkspaceSsoSession' | 'getWorkspace', {
userId: string;
workspaceId: string;
role?: WorkspaceRoles;
}, InstanceType<typeof WorkspaceSsoSessionNoAccessError | typeof WorkspaceNoAccessError | typeof WorkspaceNotEnoughPermissionsError>>;
/**
* Ensure the workspaces module is enabled
*/
export declare const ensureWorkspacesEnabledFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv, {}, InstanceType<typeof WorkspacesNotEnabledError>>;
/**
* Ensure workspace is not read-only
*/
export declare const ensureWorkspaceNotReadOnlyFragment: AuthPolicyEnsureFragment<typeof Loaders.getWorkspacePlan, WorkspaceContext, InstanceType<typeof WorkspaceNoAccessError | typeof WorkspaceReadOnlyError>>;
/**
* Ensure workspace can accept new project (not read-only, limits not reached).
* If userId is specified, will also check for user role & seat
*/
export declare const ensureWorkspaceProjectCanBeCreatedFragment: AuthPolicyEnsureFragment<typeof Loaders.getWorkspacePlan | typeof Loaders.getWorkspaceSeat | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspaceLimits | typeof Loaders.getWorkspaceProjectCount, WorkspaceContext & MaybeUserContext, InstanceType<typeof WorkspaceNoAccessError | typeof WorkspaceReadOnlyError | typeof WorkspaceLimitsReachedError | typeof WorkspaceNoEditorSeatError | typeof WorkspaceNotEnoughPermissionsError>>;
/**
* Ensure model can be created (workspace not read-only, limits not reached).
* If userId is specified, will also check for appropriate user role & seat
*/
export declare const ensureModelCanBeCreatedFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv | typeof Loaders.getWorkspacePlan | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspaceLimits | typeof Loaders.getProject | typeof Loaders.getWorkspaceModelCount, ProjectContext & MaybeWorkspaceContext & MaybeUserContext & {
/**
* How many models we're testing being added. Defaults to 1
*/
addedModelCount?: number;
}, InstanceType<typeof WorkspaceNoAccessError | typeof WorkspaceReadOnlyError | typeof WorkspaceLimitsReachedError | typeof ProjectNotFoundError | typeof PersonalProjectsLimitedError>>;
//# sourceMappingURL=workspaces.d.ts.map