Skip to Content
InterfacesIWorkbookPermission

Interface: IWorkbookPermission

Workbook-level permission Facade interface

Properties

PropertyModifierTypeDescription

collaboratorChange$

readonly

Observable<{ collaborator: …; type: …; }>

Collaborator change stream

permission$

readonly

Observable<WorkbookPermissionSnapshot>

Permission snapshot change stream (BehaviorSubject, immediately provides current state on subscription) Triggers when any permission point changes

pointChange$

readonly

Observable<{ oldValue: …; point: …; value: …; }>

Single permission point change stream For scenarios that only care about specific permission point changes

Methods

addCollaborator()

addCollaborator(user, role): Promise<void>

Add a single collaborator

Parameters

ParameterType
userUser$1
roleUnitRole$1

Returns

Promise<void>


canEdit()

canEdit(): boolean

Whether current user can edit this workbook (calculated from combined permissions)

Returns

boolean


getPoint()

getPoint(point): boolean

Read current value of a point (synchronous, reads from local state)

Parameters

ParameterType
pointWorkbookPermissionPoint

Returns

boolean


getSnapshot()

getSnapshot(): WorkbookPermissionSnapshot

Get snapshot of all current points

Returns

WorkbookPermissionSnapshot


listCollaborators()

listCollaborators(): Promise<...[]>

List all collaborators

Returns

Promise<…[]>


removeCollaborator()

removeCollaborator(userId): Promise<void>

Remove collaborator

Parameters

ParameterType
userIdstring

Returns

Promise<void>


removeCollaborators()

removeCollaborators(userIds): Promise<void>

Batch remove collaborators

Parameters

ParameterType
userIdsstring[]

Returns

Promise<void>


setCollaborators()

setCollaborators(collaborators): Promise<void>

Batch set collaborators (replace mode, overwrites existing collaborator list)

Parameters

ParameterType
collaborators{ role: …; user: …; }[]

Returns

Promise<void>


setEditable()

setEditable(): Promise<void>

Shortcut: Set workbook to editable (equivalent to setMode(‘editor’) or owner subset)

Returns

Promise<void>


setMode()

setMode(mode): Promise<void>

High-level mode setting: By Owner / Editor / Viewer / Commenter semantics Internally automatically combines multiple WorkbookPermissionPoints

Parameters

ParameterType
modeWorkbookMode

Returns

Promise<void>


setPoint()

setPoint(point, value): Promise<void>

Low-level point operations: Directly set boolean value of a WorkbookPermissionPoint

Parameters

ParameterType
pointWorkbookPermissionPoint
valueboolean

Returns

Promise<void>


setReadOnly()

setReadOnly(): Promise<void>

Shortcut: Set workbook to read-only (equivalent to setMode(‘viewer’))

Returns

Promise<void>


subscribe()

subscribe(listener): UnsubscribeFn

Compatibility method: Simplified subscription (for users unfamiliar with RxJS) Internally implemented based on permission$ Observable

Parameters

ParameterType
listener(snapshot) => void

Returns

UnsubscribeFn


updateCollaborator()

updateCollaborator(user, role): Promise<void>

Update collaborator role and information

Parameters

ParameterType
userUser$1
roleUnitRole$1

Returns

Promise<void>