0
我試圖爲我的應用設置「general_user」角色,以便管理員可以通過從用戶角色中刪除用戶來禁止用戶。parse-server在afterSave中爲用戶和角色設置ACL
此代碼:
Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.object;
if (user.existed()) { return; }
var roleQuery = new Parse.Query(CONSTANTS.ROLE_CLASSNAME);
roleQuery.equalTo("name", CONSTANTS.GENERAL_USER_ROLENAME);
roleQuery.first(CONSTANTS.USE_MASTER_KEY)
.then(function(generalUserRole) {
if(generalUserRole)
{
generalUserRole.getUsers().add(user);
return generalUserRole.save();
}
else
{
var role = new Parse.Role(CONSTANTS.GENERAL_USER_ROLENAME, new Parse.ACL());
role.getUsers().add(user);
return role.save();
}
}).then(function(generalUserRole) {
var acl = new Parse.ACL();
acl.setWriteAccess(user, true);
acl.setRoleReadAccess(generalUserRole, true);
req.object.setACL(acl);
},
function(error) {
console.log(JSON.stringify(error));
});
});
結果在ACL這是public read, user(write)
(在儀表盤讀數)。
我試過在添加ACL後保存保存req.object。
我試過了,沒有res.success()
(我知道在afterSaves中沒有必要)。
謝謝。
所以我曾試圖像這樣,它不工作,當你說,它的工作,我意識到這一定是別的東西。所以我刪除了我的Parse.User表中的所有用戶(使用舊的ACL),然後一切正常。謝謝。 – MayNotBe
很酷。很高興現在它適合你 –