Вот сводка отображений между разрешениями, указанными в пользовательском интерфейсе Team Drive, соответствующим значением getAccess()
и методом API папки, который вы можете вызвать, который содержит этого человека:
+-----------------------+-------------+-------------------+
| Team Drive Permission | getAccess() | Folder API Method |
+-----------------------+-------------+-------------------+
| Manager | ORGANIZER | (None) |
| Content Manager | NONE | (None) |
| Contributor | EDIT | getEditors() |
| Commenter | COMMENT | getViewers() |
| Viewer | VIEW | getViewers() |
| (None) | NONE | (None) |
+-----------------------+-------------+-------------------+
Некоторые результаты:
- Невозможно узнать, кто является Content Manager в Team Drive : обратите внимание, как он возвращает
NONE
как для Content Manager s, так и для людей, которые не включены командный драйв. Поэтому невозможно узнать, кто является Content Manager на Team Drive, используя метод getAccess()
, даже если вы знаете адрес электронной почты этого человека. Это может быть ошибка в API?
- Вы можете легко получить всех участников : просто вызовите метод
getEditors()
.
- Вы можете получить все комментаторы и средства просмотра, но вам нужно использовать
getAccess()
тоже : поскольку и Commenters, и средства просмотра возвращаются через getViewers
, вам нужно будет сопоставить это с возвращенными результатами в getAccess (), чтобы найти фактических Комментаторов или Зрителей.
- Нет методов API для получения менеджера или контент-менеджеров : Ни один из стандартных методов API, которые возвращают набор пользователей в папку, не вернет никого из группы Manager или Content Manager. Поэтому вам необходимо знать адрес электронной почты менеджеров, и вы можете использовать getAccess () только для проверки того, что они действительно являются менеджерами.
getOwner()
всегда возвращает null
. Предположительно, это потому, что в Team Drives нет ни одного владельца. Он вернет null
, даже если у вас ровно 1 менеджер и 0 контент-менеджеров.
Поэтому, похоже, нет способа найти OWNER
s или ORGANIZER
s на Team Drive (предположительно, Managers и Content Manager , соответственно) с использованием стандартного API. Вместо этого вы уже должны знать, какой адрес электронной почты связан с пользователем, и набрать getAccess()
. Это прискорбно.
Я ожидал, что сработает следующий обходной путь:
- Создайте фиктивный файл внутри Team Drive. Поскольку права доступа file внутри Team Drive точно соответствуют Edit , Comment , View , метод
getEditors()
теперь должен предоставлять Manager и контент-менеджеры. Поскольку у них есть разрешение Редактировать для файла, они, вероятно, должны быть возвращены методом getEditors()
.
К сожалению, это тоже не сработало. Результаты были точно такие же, как в случае папка . Менеджер и Менеджер контента были скрыты (то есть ни один из 3 методов не возвращал их). GetAccess () Менеджера контента все еще НЕТ и т. Д.
Чтобы получить список менеджеров и контент-менеджеров, я считаю, что единственный вариант - использовать расширенный API. В частности, похоже, что teamDrivePermissionDetails[].role
для объекта Permissions возвращает ровно 5 состояний, которые соответствуют разрешениям Team Drive:
- 1080 * Организатор *
- fileOrganizer
- автор
- комментатор
- Читатель