parse.com在CloudCode中为用户创建的所有对象设置默认ACL

时间:2014-06-26 21:03:25

标签: javascript objective-c parse-platform

在Parse的Obj-C SDK中,有以下功能:

    // Default Security for creating PFObjects
    PFACL *defaultACL = [PFACL ACL];
    [defaultACL setPublicReadAccess:YES];
    [PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];

根据我的理解,PFUser创建的所有未来对象都是公开可读的,但只能由PFUser写入。

我似乎无法在JS / CloudCode SDK中找到等效选项。我希望能够为用户设置这种选项,这样他们创建的所有PFObject都将遵循默认的ACL模式,除非被覆盖,而不是始终逐个设置ACL。这可能吗?

1 个答案:

答案 0 :(得分:0)

这似乎不是使用当前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具有的显着差异(自动显示)会自动反映当前用户。在我的代码中,如果当前用户发生了更改,则必须重新设置默认ACL。