在云代码中创建ACL时出错:无效的权限类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在云代码中创建ACL时出错:无效的权限类型相关的知识,希望对你有一定的参考价值。
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版本。)
问题是由于在全局Mocha测试设置文件中使用global.Parse = require('parse/node')
引起的;当运行所有集成测试(> 300次测试,大约需要4分钟)时,这会引起一些奇怪的效果,如上面提到的Tried to create an ACL with an invalid permission type
,还有You cannot use [object Object] as a query parameter
;这两个错误只发生在运行时负载很重并运行所有测试时 - 只运行一次测试从未产生任何错误。
这个Github issue的详细信息。
以上是关于在云代码中创建ACL时出错:无效的权限类型的主要内容,如果未能解决你的问题,请参考以下文章
在 iTunes Connect 中创建用户时出错:年份无效
尝试在 Google PubSub python 中创建主题订阅时出错