Ограничить совместное использование документов Google с конкретным человеком или группой - PullRequest
5 голосов
/ 09 июля 2019

Я хочу ограничить общий доступ к Документу Google для определенных пользователей / групп в организации с помощью надстройки редактора.

Чтобы добиться того же, я думаю о двух вариантах:

  1. Отключить общий доступ, а затем поделиться с конкретными пользователями через надстройку.
  2. Есть функциясрабатывает при совместном использовании документа / нажата кнопка «Поделиться».

Может ли кто-нибудь помочь с любым из вышеперечисленных подходов, или если вышеперечисленное вообще возможно?Заранее спасибо.

1 Ответ

0 голосов
/ 10 июля 2019

Возможно, хотя и несколько трудоемко. Следующие шаги:

  1. Ознакомьтесь с реализацией прав доступа к файлу Google Диска в скрипте Apps (см. Ниже).
  2. Адаптируйте Quickstart для Google Docs Addon к вашим потребностям. Ключевые моменты:

a) Определите в файле HTML два набора элементов, например, переключатели - один набор для типа доступа, другой для параметров прав доступа.

    <div>
    <input type="radio" name="accessType" id="radio-access-anyone" value="DriveApp.Access.ANYONE">
    <label for="radio-access-anyone">Anyone can access</label>
    </div>
    <div>
    <input type="radio" name="accessType" id="radio-access-domain" value="DriveApp.Access.DOMAIN">
    <label for="radio-access-domain">Domain members can access</label>
    </div>
    <div>
    <input type="radio" name="permissionType" id="radio-permission-edit" value="DriveApp.Permission.EDIT">
    <label for="radio-permission-edit">Can edit</label>
    </div>
    <div>
    <input type="radio" name="permissionType" id="radio-permission-view" value="DriveApp.Permission.VIEW">
    <label for="radio-permission-view">Can view</label>
    </div> 

b) Внедрите в свой HTML-файл функцию, которая назначает значения радиокнопок для переменной сценария Apps и вызывает google.script.run :

function setPermission() {
...
        var accessType = $('input[name=accessType]:checked').val();
        var permissionType = $('input[name=permissionType]:checked').val();
        google.script.run    
... 
 }

c) Создайте в файле .gs функцию, которая реализует метод setSharing(accessType, permissionType) с параметрами, полученными с помощью переключателей.

[1] https://developers.google.com/apps-script/reference/drive/

[2] https://developers.google.com/apps-script/reference/drive/folder#setSharing(Access,Permission) [3] https://developers.google.com/apps-script/reference/drive/permission

...