# Права доступа

- Human documentation: [https://docs.univer.ai/ru-RU/guides/bases/features/core/permissions](https://docs.univer.ai/ru-RU/guides/bases/features/core/permissions)

- Agent Markdown: [https://docs.univer.ai/ru-RU/guides/bases/features/core/permissions.md](https://docs.univer.ai/ru-RU/guides/bases/features/core/permissions.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [bases/features/core/permissions.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/features/core/permissions.ru-RU.mdx)

---

Переведите всю Base или отдельные таблицы, поля, записи и представления в режим только для чтения. Это удобно для отчётов или для разрешения изменений лишь в части данных.

Перед использованием этих API зарегистрируйте плагин Bases и импортируйте `@univerjs-pro/bases/facade`.

## Режим только для чтения для Base

```ts
const base = univerAPI.getActiveBase()
if (!base) throw new Error('Open a Base first')

await base.getPermission().setReadOnly()
console.log(base.getPermission().canEdit()) // false

await base.getPermission().setEditable()
```

## Ограничение отдельного объекта

Например, ограничьте одну таблицу:

```ts
const table = base.getTables()[0]
if (!table) throw new Error('Create a table first')

await table.getPermission().setReadOnly()
await table.getPermission().setEditable()
```

Поля, записи и представления также предоставляют `getPermission()`, как и панели мониторинга и сводные представления при регистрации их плагина. Разрешение изменений объекта не отменяет ограничение родителя: редактируемая запись не может обойти режим только для чтения таблицы.

`setReadOnly()` и `setEditable()` возвращают Promise и требуют `await`. Для групповых изменений используйте `base.getPermission().setObjectPermissions()`; параметры описаны в [Bases Facade](https://docs.univer.ai/ru-RU/reference/facade/base.md).

## Копирование, экспорт и комментарии

Права на уровне Base также управляют копированием, экспортом и комментариями. Например, отключите копирование:

```ts
import { UnitAction } from '@univerjs/protocol'

await base.getPermission().setPoint(UnitAction.Copy, false)
```

Для прав на экспорт и комментарии используйте `UnitAction.Export` и `UnitAction.Comment`.

## Подключение прав приложения

Локальные права управляют поведением редактора. В совместных приложениях сервер также должен авторизовывать чтение содержимого, присоединение к совместному редактированию и отправку изменений; см. [Интеграция сервера](https://docs.univer.ai/ru-RU/server.md).

Проверяйте действия на странице и прямые запросы от имени редактора, читателя и пользователя без доступа.
