在Parse的Obj-C SDK中,有这样的函数:
// Default Security for creating PFObjects
PFACL *defaultACL = [PFACL ACL];
[defaultACL setPublicReadAccess:YES];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];
据我了解,这使得 PFUser 创建的所有 future 对象都可以公开读取,但只能由 PFUser 写入。
我似乎在 JS/CloudCode SDK 中找不到等效的选项。我希望能够为用户设置此类选项,以便他们创建的所有 PFObject 都将遵循默认 ACL 模式(除非被覆盖),而不是总是一一设置 ACL。这可能吗?
最佳答案
当前的 SDK 似乎无法实现此目的。您可以通过以下方法开始添加该功能。
// add a basic accessor for default acl
Parse.Object.setDefaultACL = function(acl) { this._defaultAcl = acl.toJSON(); }
Parse.Object.getDefaultACL = function() { return this._defaultAcl; }
// override initialize (which is empty by default) to set the default acl
// when a new object is created
Parse.Object.prototype.initialize = function() {
var aclHash = Parse.Object.getDefaultACL();
if(aclHash) {
var acl = new Parse.ACL(aclHash);
this.setACL(acl);
}
}
与 iOS SDK 的一个显着区别(看起来)是自动反射(reflect)当前用户。在我的代码中,如果当前用户发生更改,则必须重新设置默认 ACL。
关于javascript - parse.com 在 CloudCode 中为用户创建的所有对象设置默认 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440195/