限制与特定个人或团体共享的Google文档

时间:2019-07-09 14:07:20

标签: google-apps-script google-sheets google-docs gsuite google-apps-script-addon

我想使用编辑器加载项来限制与组织中特定用户/组的Google Doc共享。

要达到相同目的,我在考虑两个选择:

  1. 禁用共享,然后通过加载项与特定用户共享。
  2. 具有共享文档/单击共享按钮时触发的功能。

有人可以提供上述任何一种方法的帮助吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

这是可能的,尽管有些费力。要遵循的步骤是:

  1. 熟悉Apps脚本中Google云端硬盘文件权限的实现(请参见下文)
  2. 使Quickstart for 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