# FRangePermission

> Language fallback: requested `ko-KR`; content is `en-US`.

- Human documentation: [https://docs.univer.ai/ko-KR/reference/facade/range-permission](https://docs.univer.ai/ko-KR/reference/facade/range-permission)

- Agent Markdown: [https://docs.univer.ai/ko-KR/reference/facade/range-permission.md](https://docs.univer.ai/ko-KR/reference/facade/range-permission.md)

- Requested language: `ko-KR`

- Content language: `en-US`

- Documentation version: `1.0.4`

- Source: [facade/range-permission.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/range-permission.mdx)

---

Implementation class for RangePermission
Manages range-level permissions

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

## Access

Access through:

* [`FRange.getRangePermission()`](https://docs.univer.ai/ko-KR/reference/facade/range.md#getrangepermission)

## Setup

Register [`@univerjs/sheets`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets.md) or a preset that includes it. In plugin mode, import `@univerjs/sheets/facade`. Additional methods below require their listed plugin packages. See [Facade setup](https://docs.univer.ai/ko-KR/guides/sheets/getting-started/facade.md).

## `@univerjs/sheets`

### `FRangePermission.isProtected`

Check if the current range is protected.

```typescript
isProtected(): boolean
```

**Returns**

True if the range is protected, false otherwise.

**Examples**

```ts
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getSheetByName('Sheet1')
if (!fWorksheet) throw new Error('fWorksheet is not available')
const fRange = fWorksheet.getRange('A1:B2')
// Check if the A1:B2 range is protected
const isProtected = fRange.getRangePermission().isProtected()
console.log(isProtected)
```

**Package:** [`@univerjs/sheets`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets.md) · [Type definitions](https://unpkg.com/@univerjs/sheets/lib/types/facade/permission/f-range-permission.d.ts)

### `FRangePermission.listRules`

List all protection rules that intersect with the current range.

```typescript
listRules(options?: { ignoreCollaborators?: boolean; }): Promise<FRangeProtectionRule[]>
```

**Parameters**

* `options` — Optional. Options for listing protection rules.

**Returns**

Array of protection rules.

**Examples**

```ts
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getSheetByName('Sheet1')
if (!fWorksheet) throw new Error('fWorksheet is not available')
const fRange = fWorksheet.getRange('A1:B2')
const rules = await fRange.getRangePermission().listRules()
console.log(rules)
```

**Types:** [`FRangeProtectionRule`](https://docs.univer.ai/ko-KR/reference/facade/range-protection-rule.md) · [`Promise`](https://unpkg.com/@typescript/typescript-darwin-arm64/lib/lib.es5.d.ts)

**Package:** [`@univerjs/sheets`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets.md) · [Type definitions](https://unpkg.com/@univerjs/sheets/lib/types/facade/permission/f-range-permission.d.ts)

### `FRangePermission.protect`

Protect the current range.

```typescript
protect(options?: IRangeProtectionOptions): Promise<FRangeProtectionRule>
```

**Parameters**

* `options` — Optional. Protection options.

**Returns**

The created protection rule.

**Examples**

```ts
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getSheetByName('Sheet1')
if (!fWorksheet) throw new Error('fWorksheet is not available')
const fRange = fWorksheet.getRange('A1:B2')
const rule = await fRange.getRangePermission().protect({
  name: 'My protected range',
  allowedUsers: ['user1', 'user2'],
  allowViewByOthers: false,
})
console.log(rule)
```

**Types:** [`FRangeProtectionRule`](https://docs.univer.ai/ko-KR/reference/facade/range-protection-rule.md) · [`Promise`](https://unpkg.com/@typescript/typescript-darwin-arm64/lib/lib.es5.d.ts) · [`IRangeProtectionOptions`](https://unpkg.com/@univerjs/sheets/lib/types/facade/permission/permission-types.d.ts)

**Package:** [`@univerjs/sheets`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets.md) · [Type definitions](https://unpkg.com/@univerjs/sheets/lib/types/facade/permission/f-range-permission.d.ts)

### `FRangePermission.unprotect`

Cancel all protection rules that intersect with the current range.

```typescript
unprotect(): Promise<boolean>
```

**Returns**

True if all rules were successfully removed, false otherwise.

**Examples**

```ts
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getSheetByName('Sheet1')
if (!fWorksheet) throw new Error('fWorksheet is not available')
const fRange = fWorksheet.getRange('A1:B2')
const result = await fRange.getRangePermission().unprotect()
console.log(result)
```

**Types:** [`Promise`](https://unpkg.com/@typescript/typescript-darwin-arm64/lib/lib.es5.d.ts)

**Package:** [`@univerjs/sheets`](https://docs.univer.ai/ko-KR/reference/packages/plugins/univerjs/sheets.md) · [Type definitions](https://unpkg.com/@univerjs/sheets/lib/types/facade/permission/f-range-permission.d.ts)
