API Reference

FRangeProtectionRule

Packages@univerjs/sheets

Implementation class for range protection rules Encapsulates operations on a single protection rule

This class should not be instantiated directly. Use factory methods on univerAPI instead.

Overview

@univerjs/sheets

MethodDescription
canDeleteCheck if the current user can delete this protection rule
canEditCheck if the current user can edit this range
canManageCollaboratorCheck if the current user can manage collaborators for this range
canViewCheck if the current user can view this range
getPointGet the value of a specific permission point
getSnapshotGet the current permission snapshot
removeDelete the current protection rule
setPointSet a specific permission point for the range rule (low-level API)
updateRangesUpdate the protected ranges

APIs

Getters & Queries

canDelete

Check if the current user can delete this protection rule.

Signature

TypeScript
canDelete(): boolean

Returns

  • boolean — true if the user can delete the rule, false otherwise.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Check if the first rule allows deleting the ruleconst rule = rules[0];if (rule?.canDelete()) {  console.log(`You can delete this protection rule for this range ${rule.ranges.map(r => r.getA1Notation()).join(', ')}`);}
Source: @univerjs/sheets

canEdit

Check if the current user can edit this range.

Signature

TypeScript
canEdit(): boolean

Returns

  • boolean — true if editable, false otherwise.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Check if the first rule allows editingconst rule = rules[0];if (rule?.canEdit()) {  console.log(`You can edit this range ${rule.ranges.map(r => r.getA1Notation()).join(', ')}`);}
Source: @univerjs/sheets

canManageCollaborator

Check if the current user can manage collaborators for this range.

Signature

TypeScript
canManageCollaborator(): boolean

Returns

  • boolean — true if the user can manage collaborators, false otherwise.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Check if the first rule allows managing collaboratorsconst rule = rules[0];if (rule?.canManageCollaborator()) {  console.log(`You can manage collaborators for this range ${rule.ranges.map(r => r.getA1Notation()).join(', ')}`);}
Source: @univerjs/sheets

canView

Check if the current user can view this range.

Signature

TypeScript
canView(): boolean

Returns

  • boolean — true if viewable, false otherwise.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Check if the first rule allows viewingconst rule = rules[0];if (rule?.canView()) {  console.log(`You can view this range ${rule.ranges.map(r => r.getA1Notation()).join(', ')}`);}
Source: @univerjs/sheets

getPoint

Get the value of a specific permission point.

Signature

TypeScript
getPoint(point: RangePermissionPoint): boolean

Parameters

  • point RangePermissionPointNo description

Returns

  • boolean — true if allowed, false if denied.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Check if the first rule allows editingif (rules.length > 0) {  const rule = rules[0];  const canEdit = rule.getPoint(univerAPI.Enum.RangePermissionPoint.Edit);  console.log(canEdit);}
Source: @univerjs/sheets

getSnapshot

Get the current permission snapshot.

Signature

TypeScript
getSnapshot(): RangePermissionSnapshot

Returns

  • RangePermissionSnapshot — Snapshot of all permission points.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Get the permission snapshot of the first ruleif (rules.length > 0) {  const rule = rules[0];  const snapshot = rule.getSnapshot();  console.log(snapshot);}
Source: @univerjs/sheets

Setters & Modifiers

setPoint

Set a specific permission point for the range rule (low-level API).

Important: This method only updates the permission point value for an existing protection rule. It does NOT create permission checks that will block actual editing operations. You must call protect() first to create a protection rule before using this method.

This method is useful for:

  • Fine-tuning permissions after creating a protection rule with protect()
  • Dynamically adjusting permissions based on runtime conditions
  • Advanced permission management scenarios

Signature

TypeScript
async setPoint(point: RangePermissionPoint, value: boolean): Promise<void>

Parameters

  • point RangePermissionPointNo description
  • value booleanNo description

Returns

  • Promise<void> — A promise that resolves when the point is set.

Tags

  • @throws — If no protection rule exists for this range.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const fRange = fWorksheet.getRange('A1:B2');// First, create a protection ruleconst rule = await fRange.getRangePermission().protect({ name: 'My Range', allowViewByOthers: true });// Then you can dynamically update permission pointsawait rule.setPoint(univerAPI.Enum.RangePermissionPoint.Edit, false); // Now disable editawait rule.setPoint(univerAPI.Enum.RangePermissionPoint.View, true);  // Ensure view is enabled
Source: @univerjs/sheets

updateRanges

Update the protected ranges.

Signature

TypeScript
async updateRanges(ranges: FRange[]): Promise<boolean>

Parameters

  • ranges FRange[]No description

Returns

  • Promise<boolean> — A promise that resolves when the ranges are updated.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Update the ranges to A1:C3 for the first ruleif (rules.length > 0) {  const rule = rules[0];  const result = await rule.updateRanges([fWorksheet.getRange('A1:C3')]);  console.log(result);}
Source: @univerjs/sheets

Actions & Operations

remove

Delete the current protection rule.

Signature

TypeScript
async remove(): Promise<boolean>

Returns

  • Promise<boolean> — A promise that resolves when the rule is removed.

Examples

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook();const fWorksheet = fWorkbook.getActiveSheet();const rules = await fWorksheet.getWorksheetPermission().listRangeProtectionRules();// Remove the first protection ruleif (rules.length > 0) {  const rule = rules[0];  const result = await rule.remove();  console.log(result);}
Source: @univerjs/sheets

How is this guide?

© 2026 DreamNum Co., Ltd.