【问题标题】:Google Apps Script - Range Protection & AccessGoogle Apps 脚本 - 范围保护和访问
【发布时间】:2014-10-05 19:26:51
【问题描述】:

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

去年我这样做时,我创建了一个包含所有受保护范围的模板。然后我复制了模板 100 多次(保留了所有范围保护)。然后我以编程方式添加用户并授予他们“仅评论”访问权限。然后我将他们的访问权限更改为“可以编辑”并手动授予他们仅编辑他们需要的范围的权限。这个过程只允许他们编辑我手动更改的范围,同时让他们对其他范围(我想要保护的)保持“可以评论”的访问权限。虽然很乏味,但这很好用,因为对于大多数用户来说,受保护的范围比可编辑的范围要多得多……所以对于其他范围保持“可以评论”很方便。

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

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

谢谢。

【问题讨论】:

  • 我建议对所有文件进行 for 循环(如果它们在同一个文件夹中)。然后检查并以编程方式设置每个文档的范围、保护和权限。如果有更多帮助,我可以添加一些代码。
  • 是的,如果你能添加一些代码就好了。
  • 我了解如何设置某些页面的保护,但我认为 Google Apps 脚本无法以编程方式保护范围...

标签: google-apps-script google-sheets


【解决方案1】:

February 2015 开始,现在可以使用 Google 应用脚本programmatically protect ranges 和工作表。 请注意,Protection 类仅适用于 the new Sheets

来自documentation的示例:

// 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);
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多