0
我在AWS上使用解析服务器,并且一直很顺利。但是,我无法像在parse.com云代码中那样分配ACL。解析服务器上的SetACL
我已阅读The Compatibility Notes,Docs和Git Read me但是很少提及ACL。
以下answer已被尝试过,但它不适用于我。
我的旧代码是这样的:
Parse.Cloud.afterSave("Favourites", function(request) {
var user = request.user;
var newACL = new Parse.ACL(Parse.User.current())
newACL.setReadAccess(user, true);
newACL.setWriteAccess(user, true);
request.object.setACL(newACL);
request.object.save();
});
显然Parse.User.current()
不能使用已经把我带到这个:
Parse.Cloud.beforeSave("Favourites", function(request, res) {
var acl = new Parse.ACL();
acl.setReadAccess(request.object.id, true);
acl.setWriteAccess(request.object.id, true);
request.object.setACL(acl);
res.success();
});
然而,这不是为我工作。
我也试着在保存的同时使用以下设置ACL,但它仍然不适用于我。
var favourites = new Favourites();
var acl = new Parse.ACL();
acl.setReadAccess('request.object.id', true);
acl.setWriteAccess('request.object.id', true);
favourites.setACL(acl);
favourites.save({
user: request.user,
favourites: request.params.favourites
}, {
success: function(favourites) {
console.log('Great!')
},
error: function(favourites, error) {
console.log('The save failed');
}
});
编辑
我刚才试着做使用JavaScript文件的东西:
var favourites = new Favourites();
var acl = new Parse.ACL(request.user);
acl.setReadAccess(request.user, true);
acl.setWriteAccess(request.user, true);
acl.setPublicWriteAccess(false);
acl.setPublicReadAccess(false);
favourites.setACL(acl);
favourites.set("favourites", request.params.favourites);
favourites.set("userId", request.user.id);
favourites.set("user", request.user);
favourites.save({}, { useMasterKey: true });
还不行!
Docs中似乎严重缺乏node.js云代码示例。
任何帮助将不胜感激。
为什么不能使用Parse.User.current()?如果我在由移动客户端创建的对象上设置afterSave()(使用iOS sdk),那么sdk如何传递用户对象? – MayNotBe
'Parse.User.current()'不能在nodeJS版本的Parse Server上使用请看这里:http://blog.parse.com/learn/using-node-js-with-parse/ – Taylorsuk
谢谢 - btw,你在帖子中链接的答案在Heroku上为我工作。我想知道为什么它不适合你? – MayNotBe