Files
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

214 lines
17 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Разрешения
description: Управляйте доступом к объектам, полям и настройкам с помощью разрешений на основе ролей.
---
Система разрешений Twenty позволяет вам контролировать доступ к трем основным областям:
* **Объекты и поля**: Контролировать, кто может просматривать, редактировать или удалять записи и отдельные поля
* **Настройки**: Управление доступом к конфигурации рабочего пространства и административным функциям
* **Действия**: Контролировать общие действия рабочего пространства, такие как импорт данных или отправка писем
## Создать роль
Чтобы создать новую роль:
1. Перейдите в **Настройки → Участники → Роли**
2. В разделе **Все роли** нажмите **+ Создать роль**
3. Введите имя роли
4. На вкладке **Разрешения** по умолчанию [настройте разрешения](#customize-permissions)
5. Нажмите **Сохранить**, чтобы завершить
## Удалить роль
Чтобы удалить роль:
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую хотите удалить
3. Откройте вкладку **Настройки**, затем нажмите **Удалить роль**
4. Нажмите **Подтвердить** в модальном окне
<Note>
Если роль удалена, любой участник рабочего пространства, назначенный на неё, будет автоматически переназначен на роль по умолчанию. Все роли кроме роли **Администратора** могут быть удалены. Всегда должен быть назначен хотя бы один участник на роль **Администратора**.
</Note>
## Назначение ролей участникам
### Просмотр текущих назначений
* Перейдите в **Настройки → Участники → Роли**
* Просмотрите все роли и количество назначенных им участников
* Просмотрите, какие роли у каких участников
### Назначить роль участнику
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. Нажмите **+ Назначить участнику**
5. Выберите участника рабочего пространства из списка
6. Подтвердите назначение
### Установить роль по умолчанию
1. Перейдите в **Настройки → Участники → Роли**
2. В разделе **Опции** найдите **Роль по умолчанию**
3. Выберите, какую роль новые участники должны получать автоматически
4. Новые участники рабочего пространства будут получать эту роль при присоединении
<Note>
Вы можете назначать роли только существующим участникам рабочего пространства. Чтобы пригласить новых участников, используйте [Управление членами](/l/ru/user-guide/settings/capabilities/member-management).
</Note>
## Настроить разрешения
Разрешения определяют, что каждая роль может получить доступ к вашей рабочей области или изменять ее, включая объекты, записи, настройки и действия.
### Разрешения на уровне объекта
Раздел **Объекты** определяет, что эта роль может делать с записями во всём вашем рабочем пространстве.
#### Задать разрешения по умолчанию (для всех объектов)
Сначала настройте базовые разрешения, которые по умолчанию применяются ко **всем объектам**:
| Разрешение | Описание |
| ------------------------------------------- | --------------------------------------------------------------------- |
| **Просмотр записей на всех объектах** | Просматривать записи в списках и на страницах с подробной информацией |
| **Редактирование записей на всех объектах** | Изменять существующие записи |
| **Удаление записей на всех объектах** | Мягко удалять записи (их можно восстановить) |
| **Уничтожение записей на всех объектах** | Безвозвратно удалять записи |
Включайте или отключайте в зависимости от того, каким должно быть поведение по умолчанию для этой роли.
<Note>
**Пример — роль стажёра**: По умолчанию стажёр должен видеть все объекты, но не редактировать их. Включите "Просмотр записей для всех объектов", но оставьте "Редактирование записей для всех объектов" не отмеченным.
</Note>
#### Добавить исключения на уровне объекта
После настройки значений по умолчанию используйте подраздел **На уровне объекта**, чтобы добавить правила, которые переопределяют значения по умолчанию для конкретных объектов.
Нажмите **+ Добавить правило** и выберите объект, чтобы создать исключение.
**Примеры правил для роли стажёра:**
| Правило | Результат |
| -------------------------------------------- | ---------------------------------------------------------------- |
| Opportunities → отключить "Просмотр записей" | Стажёр вообще не видит объект Opportunities |
| People → включить "Редактирование записей" | Стажёр может редактировать записи People (но не других объектов) |
### Разрешения на уровне строк
<Note>
Разрешения на уровне строк — это **премиальная функция**, доступная в тарифе **Organization** (Cloud и Self-Hosted).
</Note>
Разрешения на уровне строк позволяют ограничить, какие отдельные записи может просматривать или редактировать роль, на основе динамических критериев. В отличие от разрешений на объекты (которые применяются ко всему типу объекта), разрешения на уровне строк оценивают каждую запись независимо.
**Примеры случаев использования:**
* Торговые представители могут видеть только свои сделки
* Менеджеры могут видеть все записи в своём регионе
* Сотрудники службы поддержки могут просматривать только назначенные им заявки
Чтобы настроить разрешения на уровне строк, откройте роль, перейдите на вкладку **Objects** и используйте раздел **Row-Level** для определения условий фильтрации для конкретного объекта.
### Разрешения на уровне поля
В рамках каждого правила на уровне объекта вы можете дополнительно настроить **разрешения на уровне поля**, чтобы управлять доступом к конкретным полям.
| Разрешение | Описание |
| ----------------------- | --------------------------- |
| **Просмотр поля** | Просматривать значение поля |
| **Редактирование поля** | Изменять значение поля |
| **Нет доступа** | Поле полностью скрыто |
**Пример — ограничение доступа к конфиденциальным полям:**
Для роли стажёра с правом редактирования People вы можете ограничить некоторые поля:
* People → Email → только **Просмотр поля** (редактирование недоступно)
* People → Address → **Нет доступа** (полностью скрыто)
Это позволяет стажёру редактировать большинство полей People, при этом защищая конфиденциальную информацию.
### Как работает наследование разрешений
Разрешения применяются каскадно — от общих к конкретным:
1. **Все объекты** → задаёт базовый уровень для всех объектов
2. **Правила на уровне объекта** → переопределяют базовые настройки для конкретных объектов
3. **Правила на уровне поля** → переопределяют настройки объекта для конкретных полей
Более конкретные настройки всегда имеют приоритет.
### Управление переопределениями разрешений
Чтобы переопределить унаследованные разрешения:
1. Нажмите **X**, чтобы удалить унаследованное правило
2. Выберите нужные конкретные разрешения
3. Нажмите оранжевую **Отмена** (круглая стрелка), чтобы отменить изменения
Когда закончите, нажмите **Завершить**, затем **Сохранить**, после чего вас перенаправит на страницу роли.
### Разрешения для настроек рабочего пространства
Контролируйте доступ к настройкам рабочего пространства двумя способами:
* Переключатель **Все доступ к настройкам** для предоставления полного доступа
* Или включите специальные разрешения (например, генерация API-ключей, предпочтения рабочего пространства, назначение ролей, настройка модели данных, настройки безопасности и управление Workflows)
<Note>
**Текущее ограничение**: Для ручного запуска рабочих процессов в настоящее время требуется доступ к управлению рабочими процессами. Это поведение может измениться в будущих версиях.
</Note>
### Разрешения на действия в рабочем пространстве
Контролируйте доступ к общим действиям рабочего пространства:
* Переключатель **Все доступ к приложениям** для предоставления полных разрешений
* Или включите индивидуальные действия, такие как **Отправить email**, **Импортировать CSV** и **Экспортировать CSV**
## Назначить роли агентам API и API
Помимо участников рабочего пространства, роли также можно назначать **ключам API** и **AI-агентам**. Это особенно полезно для команд, которые хотят точно контролировать, «кто» что может делать в их рабочем пространстве — включая автоматизированные процессы и интеграции.
### Зачем назначать роли ключам API и AI-агентам?
* **Безопасность**: Ограничьте доступ и возможность изменений для автоматизированных процессов
* **Соответствие требованиям**: Обеспечьте, чтобы интеграции получали доступ только к необходимым данным
* **Контроль**: Предотвратите случайные изменения данных из-за неверно настроенных автоматизаций
* **Аудит**: Отслеживайте, какие действия выполнены какой интеграцией или каким агентом
### Назначить роль ключу API
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Ключи API** нажмите **+ Назначить ключу API**
5. Выберите ключ API из списка
6. Подтвердите назначение
Теперь ключ API унаследует все разрешения, определённые этой ролью. Любые вызовы API, выполненные с этим ключом, будут соответствующим образом ограничены.
<Note>
Ключи API без назначенной роли используют разрешения по умолчанию. Для повышения безопасности всегда назначайте конкретную роль производственным ключам API.
</Note>
### Назначить роль AI-агенту
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **AI-агенты** нажмите **+ Назначить AI-агенту**
5. Выберите AI-агента из списка
6. Подтвердите назначение
AI-агент сможет получать доступ к данным и выполнять действия только в пределах разрешений назначенной ему роли.
<Note>
Для AI-агентов, работающих в рамках рабочих процессов, это гарантирует, что агент не сможет получать доступ к данным или изменять их вне своей предназначенной области — даже если у рабочего процесса есть более широкие разрешения.
</Note>