繁体   English   中英

Google Apps脚本-范围保护和访问

[英]Google Apps Script - Range Protection & Access

我正在为100多家学校管理Google电子表格。 每个学校的电子表格都有多个用户角色(例如,校长,教练,老师等),我需要限制其访问权限,并且只允许人们编辑特定范围。 以编程方式保护范围是最简单的解决方案,但不幸的是,目前无法使用Google Apps Script做到这一点。

去年,当我这样做时,我创建了一个包含所有受保护范围的模板。 然后,我将模板复制了100多次(保留了所有范围保护)。 然后,我以编程方式添加了用户,并授予他们“仅评论”访问权限。 然后,我将他们的访问权限更改为“可以编辑”,并手动授予他们访问权限,以仅编辑所需的范围。 此过程仅向他们提供了对我手动更改的范围的编辑访问权限,同时使他们可以对其他范围(我要保护)进行“可以评论”访问。 尽管这很乏味,但效果很好,因为对于大多数用户而言,受保护的范围比可编辑的范围要多得多...因此,将“ Can comment”保留为其他范围很方便。

今年,我试图做同样的事情。 我已经保护了电子表格上的范围,并为我的用户添加了“可以评论”权限。 但是,当我将用户更改为“可以编辑”访问权限时,他们可以编辑所有内容(包括受保护的范围)! 看来这是默认功能。 现在,我必须进入每个范围并删除编辑权限。 去年,对于每个范围,我只需要授予少量用户的编辑权限...如果找不到解决方法,这将花费更多时间。

有谁知道解决方法吗? 这是Google Spreadsheets 2.0的产品吗(去年我使用了旧版的Google Sheets)?

谢谢。

20152月起 ,现在可以使用Google App脚本以编程方式保护范围和工作表。 请注意,Protection类仅适用于新的Sheets

文档中的示例:

// Protect range A1:B10, then remove all other users from the list of editors.
 var ss = SpreadsheetApp.getActive();
 var range = ss.getRange('A1:B10');
 var protection = range.protect().setDescription('Sample protected range');

 // Ensure the current user is an editor before removing others. Otherwise, if the user's edit
 // permission comes from a group, the script will throw an exception upon removing the group.
 var me = Session.getEffectiveUser();
 protection.addEditor(me);
 protection.removeEditors(protection.getEditors());
 if (protection.canDomainEdit()) {
   protection.setDomainEdit(false);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM