Пользователь владеет папкой «Мой диск». В папке может находиться несколько пользователей с доступом к разным файлам. Эта модель ограниченного доступа означает, что разные пользователи могут видеть разные списки элементов в одной папке. Пользователь, имеющий доступ к родительской папке «Мой диск», но не к элементу в этой папке, имеет «ограниченный доступ». Это создает ситуацию, когда трудно узнать, кто имеет доступ в иерархии.
И наоборот, файлы общего диска принадлежат общему диску. Общие диски имеют расширенную модель, поэтому каждый пользователь имеет одинаковый список элементов в одной папке.
Введение папок с ограниченным доступом повторяет модель расширенного доступа с общих дисков к «Моему диску». Благодаря этому изменению папки с ограниченным доступом станут единственным исключением, которое позволяет ограничить доступ к определенной подпапке как в «Моем диске», так и на общих дисках.
В этом руководстве объясняется, как управлять папками с ограниченным и расширенным доступом на Google Диске.
О папках с ограниченным доступом
Папки с ограниченным доступом позволяют ограничить доступ к папкам определенным пользователям. Только пользователи, которых вы напрямую добавили в права доступа к папке, могут открыть ее и получить доступ к ее содержимому. Пользователи с унаследованным доступом к общей папке «Мой диск» или папке общего диска (через доступ из родительской папки) могут видеть папку с ограниченным доступом на Диске, но не могут ее открыть. Эта функция лучше согласовывает поведение общего доступа к элементам как в «Моем диске», так и на общих дисках, позволяя вам упорядочивать папки с конфиденциальным содержимым вместе с более широко используемым контентом.
Папки с ограниченным доступом доступны как в «Моем диске», так и на общих дисках. Роль owner
в разделе «Мой диск» и роль organizer
на общих дисках всегда имеют доступ к папкам с ограниченным доступом. Для изменения списка пользователей папки не требуются специальные разрешения. Роли, которые могут совместно использовать папки, могут обновлять списки участников. Дополнительные сведения о ролях и разрешениях см. в разделах Роли и разрешения и Обзор общих дисков .
Обратите внимание: хотя папки представляют собой тип файлов, для файлов ограниченный доступ недоступен.
Установить ограниченный доступ к папке
Хотя пользователи с прямыми разрешениями на папку могут получить доступ к папке с ограниченным доступом, только роль owner
в «Моем диске» и роль organizer
на общих дисках могут включать или отключать ограниченный доступ.
Кроме того, если у пользователя с ролью writer
в разделе «Мой диск» для логического поля writersCanShare
ресурса files
установлено значение true
, он также может включить или отключить эту функцию.
Чтобы ограничить доступ к папке, установите для логического поля inheritedPermissionsDisabled
ресурса files
значение true
. Если true
, доступ к ней могут получить только роль owner
, роль organizer
и пользователи с прямыми разрешениями на папку.
Чтобы снова включить унаследованные разрешения, установите для inheritedPermissionsDisabled
значение false
.
Проверьте разрешение на ограничение доступа к папке
Чтобы проверить, можете ли вы ограничить доступ к папке или нет, проверьте логические значения полей capabilities.canDisableInheritedPermissions
и capabilities.canEnableInheritedPermissions
в ресурсе files
. Эти настройки подтверждают, есть ли у вас разрешение ограничивать доступ к папке через поле inheritedPermissionsDisabled
.
Дополнительные сведения о capabilities
см. в разделе Общие сведения о возможностях файлов .
Список дочерних элементов папки с ограниченным доступом
Чтобы проверить, можете ли вы перечислить дочерние элементы папки, используйте логическое поле capabilities.canListChildren
.
Возвращаемое значение всегда является false
, если элемент не является папкой или если доступ запрашивающей стороны к содержимому папки был удален путем установки inheritedPermissionsDisabled
значения false
.
Если ваш доступ к содержимому папки был закрыт, вы все равно можете получить доступ к метаданным папки с помощью методов files.get()
и files.list()
. Чтобы убедиться, что доступ ограничен, проверьте тело ответа и убедитесь, что элемент является папкой с типом MIME application/vnd.google-apps.folder
, а для поля capabilities.canListChildren
установлено значение false. Если вы попытаетесь вывести список дочерних элементов такой папки, результат всегда будет пустым.
Доступ к папке с метаданными ограниченного доступа
Папки с ограниченным доступом позволяют просматривать метаданные папки, если у вас нет доступа к содержимому папки.
При использовании ресурса permissions
для определения доступа пользователя папки «Мой диск» и общий диск, которые предоставляют доступ только к метаданным, содержат в тексте ответа следующие значения: inheritedPermissionsDisabled=true
и view=metadata
. Роль всегда установлена для reader
. Поле view
заполняется только для разрешений, принадлежащих view
. Дополнительную информацию см. в разделе Представления .
Для всех записей в поле permissionDetails
для поля inherited
установлено значение true
, что означает, что разрешение унаследовано и прямой доступ к содержимому папки не предоставлен.
Чтобы предоставить доступ как к содержимому папки, так и к метаданным, установите для поля inheritedPermissionsDisabled
значение false
или обновите роль до reader
или выше.
Наконец, если разрешение сначала было ограничено путем отключения наследования для папки ( inheritedPermissionsDisabled=true
), а затем разрешение было добавлено обратно непосредственно в папку, значения в тексте ответа станут inheritedPermissionsDisabled=true
с неустановленным полем view
. Если папка находится на общем диске, в списке permissionDetails
есть запись с полем inherited
, для которого установлено false
что означает, что разрешение не унаследовано. Это разрешение предоставляет доступ как к содержимому папки, так и к метаданным, как и любое другое разрешение.
Удалить папки с ограниченным доступом
Вы можете удалить папки с ограниченным доступом, используя метод files.delete()
ресурса files
.
В «Моем диске» только владелец объекта может удалить иерархию папок. Если пользователь удаляет иерархию с папками, которые имеют ограниченный доступ и принадлежат другим лицам, эти папки перемещаются на «Мой диск» владельца.
Если у пользователя есть роль owner
, вся иерархия будет удалена.
На общих дисках роль organizer
может удалять иерархии, даже если они содержат папки с ограниченным доступом. Если роль fileOrganizer
удаляет иерархию, содержащую папки с ограниченным доступом, результат зависит от того, были ли они добавлены обратно как fileOrganizer
в папки с ограниченным доступом. Если да, то вся иерархия будет удалена. В противном случае папки с ограниченным доступом перемещаются в корневую папку общего диска.
О расширенном доступе
Введение папок с ограниченным доступом расширяет модель расширенного доступа от общих дисков к «Моему диску». После развертывания модели доступа доступ к папке означает, по крайней мере, одинаковый уровень доступа ко всему в этой иерархии папок. Папки с ограниченным доступом являются единственным исключением, которое позволяет ограничить доступ к определенной подпапке как в «Моем диске», так и на общих дисках. Это также означает, что, если ваша папка не имеет ограниченного доступа, вы больше не сможете удалить доступ, унаследованный от родительской папки. Это означает, что Drive API возвращает ответ об ошибке. Чтобы определить более детальный контроль доступа в иерархии, вы можете установить ограниченный доступ к папке.
Адаптируйтесь к расширенному доступу
Чтобы разработчикам было проще адаптироваться к расширенному доступу, в API Google Диска было внесено несколько улучшений:
Поле
permissionDetails[]
ресурсаpermissions
теперь заполняется для элементов в «Моем диске». Раньше поля либо не настраивались, либо реплицировались из поляteamDrivePermissionDetails
, где это было необходимо. В разделе «Мой диск» заполняются только поляpermissionType
иinherited
.Поле
permissionDetails[].inherited
указывает, унаследовано ли разрешение от родительского элемента. Он позволяет определить, унаследованы ли определенные роли (например,reader
) от родителя, и предоставлена ли более высокая роль (например,writer
) элементу напрямую.При просмотре разрешений для элемента поле
permissionDetails[]
может содержать несколько записей. Если они присутствуют, есть одна запись для разрешения непосредственно на элементе для этой области, а затем записи для унаследованных или членских разрешений для этого элемента.Разработчики могут выбрать расширенное поведение API доступа в «Моем диске» до принятия каких-либо обязательных мер в будущем. Вы можете установить для параметра запроса
enforceExpansiveAccess
значениеtrue
, чтобы будущие изменения расширенного доступа не влияли на ваше приложение.Если вы подпишетесь сейчас, это означает, что API работает с объектами на «Моем диске» так же, как и с объектами на общих дисках. Например, любая попытка ограничить доступ ниже унаследованной роли завершается неудачей при вызове
permissions.update()
. Аналогично, вызовpermissions.delete()
завершится неудачей, если разрешение унаследовано.
Обнаружение и предотвращение ограниченного доступа
Ваше приложение может создавать ограниченный доступ (когда пользователь имеет доступ к родительской папке «Мой диск», но не к файлу в этой папке) к вашим папкам «Мой диск» при использовании методов permissions.update()
или permissions.delete()
.
При использовании этих методов вы можете просмотреть поля ресурса permissions
, чтобы узнать, где запрос может создать ограниченный доступ, и избежать отправки таких запросов. Чтобы обнаружить эту ситуацию, используйте поле enforceExpansiveAccess
в вашем запросе.
Кроме того, если ваше приложение уже создало ограниченный доступ к вашим папкам, вы можете предпринять следующие шаги:
Просмотрите иерархию папок, чтобы снять ограниченный доступ. Вместо него следует установить ограниченный доступ к папкам .
Если объект, который вы пытаетесь отменить, является файлом, вы можете создать промежуточную папку, установить для нее ограниченный доступ и переместить файл в новую папку.
Если вы не хотите использовать папки с ограниченным доступом, но должны ограничить доступ к ним, вы можете переместить файл в личную папку (например, в корневую папку «Мой диск»). Затем вы можете создать ярлык к исходному местоположению элемента, чтобы пользователи могли его использовать.
Связанные темы
- Делитесь файлами, папками и дисками
- Как работает доступ к файлам на общих дисках
- Узнайте о папках с ограниченным доступом