允许用户复制Google电子表格表但保留其父级权限

时间:2016-11-09 17:31:56

标签: api permissions google-sheets

我需要允许Google电子表格的用户复制带有限制范围的工作表/标签,并在副本中保留这些限制。这是可能的,因为它们将是复制的工作表/标签的“所有者”(虽然不是整个电子表格和脚本)?

我创建了一个共享电子表格,其中包含带有精心保护范围的模板表/标签。其他用户需要复制该工作表/选项卡,但仍然只能对未受保护的范围进行编辑访问。

如果Google电子表格表/标签通常是重复的,则其范围保护不会复制。这里建议解决此问题:How to duplicate a sheet with protected ranges?

然而,虽然这个脚本对我来说很漂亮(作为所有者),但当其他用户运行它时它会失败。他们可以编辑副本上的受限范围(因为他们创建了它),或者,如果我尝试删除他们在脚本中的编辑权限,那么当他们运行“你没有执行该操作的权限”时,它们就会失败”

我最初的解决方法是在脚本中写入整个电子表格级别的所有权限的临时暂停,以允许脚本运行,复制,删除其范围权限,然后删除其电子表格权限。

问题是这个(以及它的许多变体)不起作用,向用户抛出相同的错误消息(“你没有权限......”)。

另一种方法是让脚本复制工作表,然后应用范围限制。这也失败了,我注意到removeEditor()的Google脚本文档指出“电子表格的所有者和当前用户都不能删除”。

我进一步指出,另一位作者确定的问题与我所遇到的基本相同:https://webapps.stackexchange.com/questions/95751/google-sheets-script-to-add-protection-and-remove-the-user-running-it

这是什么打破了它?如果是这样,是否有解决方法?我是否误解了谷歌分享模式的一些(非常基本的)细节?

我也很欣赏编写一个脚本来显式(如果暂时)暂停写入电子表格的权限是愚蠢的,但这是(据我所知)实现用户复制工作表的最终目标的唯一方法保持他们的射程保护。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

这是无法想象的。用户要么需要安装/应用脚本,要么需要始终跟踪新创建的图纸并手动限制/允许其中的范围。