删除其他用户运行的程序触发器

时间:2019-12-03 20:03:26

标签: javascript google-apps-script triggers permissions

脚本和JS的新手,在这里!我毫不怀疑这些信息在某处可用,但是我在理解集体用户权限以触发删除方面遇到困难。我知道可安装触发器只能由创建它们的用户删除,但是Google Scripts page中的详细信息似乎推断出可编程触发器(用实际代码编写)可以被其他用户删除/删除。如果是这样,为什么当我运行脚本以从其他用户的计算机中删除所有触发器 时,却不会删除我从计算机中编程的触发器?其他Stack Overflow page即将解决此问题,但似乎只是在谈论可安装的触发器(如果我没记错的话)。

/**
 * Creates a time-driven trigger.
 */
function createFirstTrigger() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger('message')
      .timeBased()
      .everyMinutes(1)
      .create();
}

function deletingAllTriggers() {
   // Deletes all triggers in the current project.
   var triggers = ScriptApp.getProjectTriggers();
   for (var i = 0; i < triggers.length; i++) {
      ScriptApp.deleteTrigger(triggers[i]);
   }
}

我还尝试了从其他人的计算机上删除触发器的原始代码,但是触发器仍然存在。

谢谢!

1 个答案:

答案 0 :(得分:1)

用户不能删除彼此的触发器。

遇到问题的用户可以打开他们的triggers page

查看所有触发器,并删除要停止的所有触发器。

该用户还可以进入其帐户的安全性部分,并查看授予第三方访问权限。

https://myaccount.google.com/security-checkup

如果GSuite帐户的管理员需要访问用户文件,则管理员应该做什么取决于用户是否仍在组织中工作。如果用户不再在组织中,则管理员必须:

  • 从任何用户的公司设备中删除公司数据
  • 更改用户密码-记录新密码-您将需要它
  • 重置登录Cookie
  • 撤消所有应用程序专用密码
  • 使用新密码登录到前员工的帐户,并删除所有辅助电话和电子邮件地址
  • 将组织仍需要的文件的文件所有权转移给其他用户
  • 复制用户帐户中的所有数据-https://takeout.google.com/settings/takeout
  • 删除用户帐户-支付没有人使用的帐户是没有意义的

如果要停止某个特定日期/时间的触发器,则可以将日期硬编码到触发器代码中以自行删除。如果您不想对其进行硬编码,则可以将日期放入“属性服务-脚本属性”,以便任何文件所有者都可以手动更改日期。

运行触发器时,用户是否仍然有权访问文件或代码都无关紧要。无论文件所有者是否有权访问文件或他们的帐户,触发器都将运行,因此触发器可以自行删除。

如果您没有编写功能代码来删除已安装的运行它的触发器,那么您将需要有权访问用户帐户。如果该用户不可用,则有人需要登录其帐户。我不是在提倡人们提供密码以使他人可以登录他们的帐户,我只是在说要做什么。

GSuite帐户的管理员可以重置用户密码,然后使用新密码登录到该帐户。

如果需要删除触发器的帐户是免费/消费帐户,则无法访问该用户帐户。

如果创建触发器的代码在附加组件中,则可以编写附加代码来检查用户是否已触发并删除它。假设该附件已被授权创建和删除触发器。对于GSuite帐户中的插件,插件所有者可以编写代码并在公司内发布插件,而无需Google对该代码进行审查。

如果带有触发器的文件已放入共享驱动器,则其他用户将有权访问该文件。但是,如果您想使用加载项,则当前无法在共享驱动器的文件中安装加载项。

Documentation for Google Shared Drive