类: FWorkbookPermission
Implementation class for WorkbookPermission Provides workbook-level permission control
实现
属性
| 属性 | 修饰符 | 类型 | 描述 |
|---|---|---|---|
|
|
|
Observable stream of collaborator changes Emits when collaborators are added, updated, or removed | |
|
|
|
Observable stream of permission snapshot changes (BehaviorSubject) Emits immediately on subscription with current state, then on any permission point change | |
|
|
|
Observable stream of individual permission point changes Emits when a specific permission point value changes |
方法
addCollaborator()
addCollaborator(user, role): Promise<void>Add a single collaborator.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
user | User$1 | The user information (userID, name, avatar). |
role | UnitRole$1 | The role to assign. |
返回
Promise<void>
A promise that resolves when the collaborator is added.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.addCollaborator(
{ userID: 'user1', name: 'John Doe', avatar: 'https://...' },
univerAPI.Enum.UnitRole.Editor
);实现了
IWorkbookPermission.addCollaborator
canEdit()
canEdit(): booleanCheck if the workbook is editable.
返回
boolean
true if the workbook can be edited, false otherwise.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
if (permission?.canEdit()) {
console.log('Workbook is editable');
}实现了
dispose()
dispose(): voidClean up resources
返回
void
getPoint()
getPoint(point): booleanGet the value of a specific permission point.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
point | WorkbookPermissionPoint | The permission point to query. |
返回
boolean
true if allowed, false if denied.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
const canPrint = permission?.getPoint(univerAPI.Enum.WorkbookPermissionPoint.Print);
console.log(canPrint);实现了
getSnapshot()
getSnapshot(): WorkbookPermissionSnapshotGet a snapshot of all permission points.
返回
An object containing all permission point values.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
const snapshot = permission?.getSnapshot();
console.log(snapshot);实现了
IWorkbookPermission.getSnapshot
listCollaborators()
listCollaborators(): Promise<...[]>List all collaborators of the workbook.
返回
Promise<…[]>
Array of collaborators with their roles.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
const collaborators = await permission?.listCollaborators();
console.log(collaborators);实现了
IWorkbookPermission.listCollaborators
removeCollaborator()
removeCollaborator(userId): Promise<void>Remove a collaborator from the workbook.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
userId | string | The user ID to remove. |
返回
Promise<void>
A promise that resolves when the collaborator is removed.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.removeCollaborator('user1');实现了
IWorkbookPermission.removeCollaborator
removeCollaborators()
removeCollaborators(userIds): Promise<void>Remove multiple collaborators at once.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
userIds | string[] | Array of user IDs to remove. |
返回
Promise<void>
A promise that resolves when the collaborators are removed.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.removeCollaborators(['user1', 'user2']);实现了
IWorkbookPermission.removeCollaborators
setCollaborators()
setCollaborators(collaborators): Promise<void>Set multiple collaborators at once (replaces existing collaborators).
参数
| 参数 | 类型 | 描述 |
|---|---|---|
collaborators | { role: …; user: …; }[] | Array of collaborators with user information and role. |
返回
Promise<void>
A promise that resolves when the collaborators are set.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.setCollaborators([
{
user: { userID: 'user1', name: 'John Doe', avatar: 'https://...' },
role: univerAPI.Enum.UnitRole.Editor
},
{
user: { userID: 'user2', name: 'Jane Smith', avatar: '' },
role: univerAPI.Enum.UnitRole.Reader
}
]);实现了
IWorkbookPermission.setCollaborators
setEditable()
setEditable(): Promise<void>Set the workbook to editable mode (editor mode).
返回
Promise<void>
A promise that resolves when the mode is set.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.setEditable();实现了
IWorkbookPermission.setEditable
setMode()
setMode(mode): Promise<void>Listen to permission point changes /** Set permission mode for the workbook.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
mode | WorkbookMode | The permission mode to set (‘owner' |
返回
Promise<void>
A promise that resolves when the mode is set.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.setMode('editor');实现了
setPoint()
setPoint(point, value): Promise<void>Set a specific permission point.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
point | WorkbookPermissionPoint | The permission point to set. |
value | boolean | The value to set (true = allowed, false = denied). |
返回
Promise<void>
A promise that resolves when the point is set.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.setPoint(univerAPI.Enum.WorkbookPermissionPoint.Print, false);实现了
setReadOnly()
setReadOnly(): Promise<void>Set the workbook to read-only mode (viewer mode).
返回
Promise<void>
A promise that resolves when the mode is set.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.setReadOnly();实现了
IWorkbookPermission.setReadOnly
subscribe()
subscribe(listener): UnsubscribeFnSubscribe to permission changes (simplified interface for users not familiar with RxJS).
参数
| 参数 | 类型 | 描述 |
|---|---|---|
listener | (snapshot) => void | Callback function to be called when permissions change. |
返回
Unsubscribe function.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
const unsubscribe = permission?.subscribe((snapshot) => {
console.log('Permission changed:', snapshot);
});
// Later, to stop listening:
unsubscribe?.();实现了
updateCollaborator()
updateCollaborator(user, role): Promise<void>Update an existing collaborator’s role and information.
参数
| 参数 | 类型 | 描述 |
|---|---|---|
user | User$1 | The updated user information (userID, name, avatar). |
role | UnitRole$1 | The new role to assign. |
返回
Promise<void>
A promise that resolves when the collaborator is updated.
示例
const workbook = univerAPI.getActiveWorkbook();
const permission = workbook?.getWorkbookPermission();
await permission?.updateCollaborator(
{ userID: 'user1', name: 'John Doe Updated', avatar: 'https://...' },
univerAPI.Enum.UnitRole.Reader
);