【发布时间】:2019-04-22 12:05:19
【问题描述】:
TL;DR
设置具有角色权限的 ACL有时会失败,因为角色的名称被解释为权限类型。
设置
在 Cloud Code 函数中,我创建了一个 ACL 对象并使用 setRoleReadAccess 授予角色读取权限:
const roleName = 'foo'; // this string is actualy calculated, but always non-nil and non-empty
const acl = new Parse.ACL();
acl.setRoleReadAccess(roleName, true);
然后我将该 ACL 设置为一个新的(未保存的)对象:
const myObject = new MyObject()
myObject.setACL(acl);
错误
setACL 调用导致异常并显示错误消息 Tried to create an ACL with an invalid permission type.,这看起来很奇怪,因为我没有提供自定义权限类型。
到目前为止我尝试了什么
- 我尝试将角色设置为
Role对象而不是字符串,但这并没有什么不同。 - 经过一些调试,我发现错误源自 ParseACL.js(第 85 行),其中
permission字符串必须匹配read或write;但是,在我的情况下,该字符串与角色名称匹配(在上面的示例中为"foo")。
我的应用程序的其他部分有类似的 ACL/角色代码,所以我确信这应该有效。现在我正在寻找提示——什么可能导致角色名称被解释为权限类型的奇怪行为——以及如何进一步调试此问题的提示。
(使用 parse-server 版本 2.3.3 和 node.js 6.4.0;我目前锁定到该 Parse 版本。)
【问题讨论】:
标签: parse-platform parse-server