如何使用电子邮件地址更新文件上的用户角色?

时间:2012-12-15 06:17:53

标签: google-drive-api

我正在处理一个项目管理应用程序http://kerika.com,我正在处理以下案例,我无法将用户在google-drive文件中的角色从“writer”降级为“reader”:

  1. 用户U1拥有的项目与用户U2共享,角色为“团队成员”。
  2. 当新文档附加到项目卡时,会将其上传到用户U1的google-drive帐户。我们将此文件称为F1。 U1成为F1的所有者,并与具有“作家”角色的用户U2共享。
  3. 当U1决定将用户U2的角色降级为kerika项目的访问者时: Kerika内部需要将用户U2在google-drive上的F1角色更新为“reader”。
  4. 此处作为kerika开发人员,很难找到用户U2修改其角色的Permission对象,因为GoogleDrive API的Permission对象不提供有关用户电子邮件地址的信息。它提供有关用户姓名的信息,但不提供有关电子邮件地址的信息。
  5. 我还查看了http://www.youtube.com/watch?v=Z2OIlwju8UM&list=PL0FA2818902D9D123&index=15上的google-drive-sdk视频。

    视频说,出于安全原因,google-drive-api没有填充用户的电子邮件地址。

    首先,google-drive网络版在共享对话框中显示其他用户的电子邮件地址,而不关心安全性?

    如果谷歌开发者决定不填写电子邮件地址,那么他们应该解决这个问题。

    e.g。 当我想将用户的角色从“reader”更改为“write”时,我可以插入一个角色为“writer”的新权限记录,并且角色正在正确更新。

    但是当我将用户的角色从“作家”更新为“读者”时,同样的事情就不起作用了。

    有没有人遇到同样的问题并找到解决办法?

    先谢谢你的帮助,

    Chirag Moradiya

1 个答案:

答案 0 :(得分:0)

您应该使用update()或patch()方法来修改现有用户对该文件的权限。显然,这里的困难在于确定用户修改的正确permissionId。

您可以尝试将权限表存储到您的电子邮件地址,但是假设所有权限更改都在您的应用中完成,而不是通过本机云端硬盘用户界面。

您的另一个选择是让最终用户确定应修改哪些用户的权利,通过显示Drive API为您提供的名称和图片来帮助他们选择。