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