javascript - 添加要运行的脚本的编辑器,然后删除它们 - 临时编辑器权限

标签 javascript google-apps-script permissions google-sheets

我共享了一个电子表格,其中包含名为“times”的工作表。 此工作表对其他用户范围 protected ,但他们必须以多种方式查看并对其进行排序。 我用 menuEntries.push 等创建一些菜单... 编写了脚本,以我需要的所有方式对这张表进行排序, 但只有我设置为管理员的人才能使用我的菜单进行排序。 其他人不能这样做,因为他们无法在 protected 范围内执行脚本。 我想仅在脚本执行期间向每个人授予权限, 代码听起来应该像上面这样(不起作用)

function Editors() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet = ss.getSheetByName("times");
  var user = SpreadsheetApp.getActive().getEditors();
  var permission = targetSheet.getSheetProtection();
  permission.addUser(user);
  SpreadsheetApp.flush();

  var tableRange = "orario!b7:ap209";   
  var tableRange = "times";
  var range = ss.getRange(tableRange); 
  range.sort( { column: 2, ascending: true } ); 

  permission.removeUser(user)
  targetSheet.setSheetProtection(permission)
}

...如果有人可以帮助我...提前致谢...

最佳答案

我创建了一个简单的工作表来测试脚本。 这里是: https://docs.google.com/spreadsheets/d/1DhDo_1A20tWdSaYMknAmuxnVJFW14QY6xBXr9BGyS-g/edit#gid=0

如果我使用“menuTeacher”2.和3.作为管理员对工作表进行排序 它工作正常。 但作为用户它不起作用

(仅使用菜单“1.sortSURNAME”来测试权限) 我保护列 A:B 和列 E:M

我把桑迪·古德先生和我一样设置为管理员(他的邮件是 xxxtrashmatXXX@gmail.com) 进行测试....

关于javascript - 添加要运行的脚本的编辑器,然后删除它们 - 临时编辑器权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715799/

相关文章:

javascript - 如何在 Google Apps 脚本中访问解析嵌套 JSON 中的对象

windows - 无法从 WinPE 内的 Windows 8 安装中完全删除 ProgramData

php - 解析错误,期望 activecollab 模型类中出现 `T_PAAMAYIM_NEKUDOTAYIM' 错误

javascript - 如何在javascript中根据日期显示数组

javascript - 页面从菜单 anchor 滚动到右页,但不是从直接链接

javascript - onmouseout 和 onmouseover

javascript - 每次发送电子邮件时如何标记每行中的单元格

关于对象数组的Javascript

html - 传输或处理此请求时出错。错误代码 = 10,路径 =/wardeninit

php - php中的Google Drive API(团队驱动器)文件权限对任何人或特定域