Управление разрешениями пользователей

В этом руководстве объясняется, как управлять разрешениями пользователей через API-интерфейс Frame.io V4. В нем рассматриваются принципы работы разрешений на уровнях учетной записи, рабочей среды и проекта, а также описываются конечные точки, используемые на каждом уровне.


Уровни разрешений

Разрешения в Frame.io управляются на уровнях учетной записи, рабочей среды и проекта. На каждом уровне используется собственный набор ролей.

Account
├── (admin) - full access to all Workspaces, Projects, and Restricted Projects
└── (member)
├── Workspace - (full_access | editor | edit_only | commenter | viewer)
│ │
│ └── Project - (full_access | editor | edit_only | commenter | viewer)
└── Restricted Project - (members require direct invite)

Каждый пользователь имеет определенную роль на уровне учетной записи. Через API можно назначить пользователю роль администратора admin или участника member.

Администраторы учетной записи имеют полный доступ ко всем рабочим средам и проектам. Участников учетной записи можно выборочно добавлять только в те рабочие среды и проекты, которые необходимы им для работы.

При добавлении участника учетной записи в рабочую среду назначаемый ему уровень прав (full_access, editor, edit_only, commenter или viewer) применяется ко всем существующим и будущим проектам в рабочей среде. Например, если вы добавите участника учетной записи в качестве зрителя (viewer), он будет обладать правами уровня viewer при доступе к любому проекту в этой рабочей среде. Этого же участника учетной записи можно добавить в конкретный проект внутри данной рабочей среды в качестве редактора (editor). В результате при доступе к этому проекту он будет обладать правами уровня editor. При этом для всех остальных проектов в данной рабочей среде для него по-прежнему будут действовать права уровня viewer. Поскольку назначения на уровне проекта существуют отдельно от назначений на уровне рабочей среды, при удалении этого участника из рабочей среды он сохранит свои права уровня editor для данного конкретного проекта.

Исключением являются проекты с ограниченным доступом. Для доступа к ним участникам учетной записи всегда требуется прямое приглашение. Подробнее — в разделе «Разрешения на уровне проекта» ниже.

Разрешения на уровне учетной записи

Каждый пользователь в вашей учетной записи имеет определенную роль.

РольРазрешенияНастройка через APIКонечная точка
Владелец (Owner)Полный доступ ко всем рабочим средам и проектам. Один на учетную записьНет
Администратор (admin)Полный доступ ко всем рабочим средам и проектамДаPATCH /accounts/:account_id/users/:user_id
Участник (member)Разрешения настраиваются на уровне рабочей среды и/или проектаДаPATCH /accounts/:account_id/users/:user_id
Рецензент (Reviewer)Доступ только через ссылки общего доступа. Создается автоматически при добавлении пользователя в защищенную ссылкуНет

Администраторы учетной записи имеют полный доступ ко всем ресурсам. Чтобы ограничить доступ администратора к конкретным ресурсам, сначала измените его роль на уровне учетной записи на «Участник», а затем добавьте его только в те рабочие среды или проекты, которые необходимы ему для работы.

Пример

1

Создайте список ролей пользователей в учетной записи, чтобы найти нужный идентификатор пользователя и подтвердить его текущую роль.

$curl https://api.frame.io/v4/accounts/:account_id/users \
> -H "Authorization: Bearer <token>"
2

Обновите роль пользователя до уровня «Участник».

$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "member"
> }
>}'
3

Добавьте его в проект.

$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "edit_only"
> }
>}'

Конечные точки разрешений на уровне учетной записи

Список ролей пользователей в учетной записи

Выводит список пользователей в данной учетной записи, включая сведения о пользователях (идентификатор, имя, адрес электронной почты) и их роль на уровне учетной записи.


GET https://api.frame.io/v4/accounts/:account_id/users
Documentation


Разрешения на уровне рабочей среды

Когда вы добавляете участника учетной записи в рабочую среду, он получает этот уровень прав для всех проектов внутри данной рабочей среды. Рабочие среды доступны только по приглашению, поэтому участники учетной записи видят исключительно те рабочие среды, в которые они были добавлены.


РольРазрешения
Полный доступ (full_access)Добавление, управление, предоставление общего доступа, комментирование, просмотр, загрузка, управление настройками и приглашение пользователей
Редактор (editor)Добавление, управление, предоставление общего доступа, комментирование, просмотр, загрузка
Только редактирование (edit_only)Добавление, управление, комментирование, просмотр. Без возможности предоставления общего доступа или загрузки
Комментатор (commenter)Просмотр и комментирование
Зритель (viewer)Только просмотр

Конечные точки разрешений на уровне рабочей среды

Список пользователей

Выводит список пользователей с доступом к указанной рабочей среде, включая сведения о пользователях (идентификатор, имя, адрес электронной почты) и их роль.


GET https://api.frame.io/v4/accounts/:account_id/workspaces/:workspace_id/users
Documentation


Разрешения на уровне проекта

В проектах используются те же уровни прав доступа, что и в рабочих средах. Добавляйте пользователей напрямую в проект, если им нужен доступ только к этому конкретному проекту или если им требуется уровень прав, отличный от назначенного на уровне рабочей среды. Пользователям не требуется доступ к рабочей среде, чтобы их можно было добавить в проект.


РольРазрешения
Полный доступ (full_access)Добавление, управление, предоставление общего доступа, комментирование, просмотр, загрузка, управление настройками и приглашение пользователей
Редактор (editor)Добавление, управление, предоставление общего доступа, комментирование, просмотр, загрузка
Только редактирование (edit_only)Добавление, управление, комментирование, просмотр. Без возможности предоставления общего доступа или загрузки
Комментатор (commenter)Просмотр и комментирование
Зритель (viewer)Только просмотр

Пример. Добавление пользователя в проект
$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "full_access"
> }
>}'

Проекты с ограниченным доступом

Проекты с ограниченным доступом требуют прямого приглашения. Права доступа на уровне рабочей среды на них не распространяются,

поэтому пользователи могут получить доступ к проекту с ограниченным доступом только в том случае, если они были добавлены в него напрямую.

Чтобы предоставить доступ участнику, добавьте его в проект с соответствующим уровнем прав.

Администраторы и владельцы учетных записей являются исключением и имеют доступ ко всем

проектам с ограниченным доступом.

Конечные точки разрешений на уровне проекта

Список ролей пользователей в проекте

Выводит список пользователей с доступом к указанному проекту, включая сведения о пользователях (идентификатор, имя, адрес электронной почты) и их роль.


GET https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users
Документация


Ресурсы

Дополнительные ресурсы, которые могут быть вам полезны: