gpt4 book ai didi

node.js - 解析服务器设置用户 ACL 并分配角色

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:17 25 4
gpt4 key购买 nike

我正在将代码从 parse.com 转换为 parse-server,但收效甚微。 afterSave 函数的想法是仅为用户分配 ACL 并将用户分配给“用户”角色。

ACL 部分工作正常,但我无法将用户分配给该角色。

Parse.Cloud.afterSave(Parse.User, function(req, res) {

if (!req.object.existed()) {
var user = req.object;
var acl = new Parse.ACL(user);
acl.setReadAccess(user, true);
acl.setWriteAccess(user, true);
user.setACL(acl);
return user.save({}, { useMasterKey: true }).then(function() {
var query = new Parse.Query(Parse.Role);
query.equalTo("name", 'user');
return query.first({useMasterKey: true});
}).then(function(roles) {
if (roles.length < 1) return Parse.Promise.error("no such role");
roles[0].getUsers({useMasterKey: true}).add(user);
return roles[0].save({}, { useMasterKey: true });
}).then(function() {
return user;
});
}

});

最佳答案

“但是我无法将用户分配给该角色”。添加函数(err)以查看哪一步失败,并查看错误消息。

您显示的代码不正确。

试试这个

return user.save({}, { useMasterKey: true }).then(function() {
var query = new Parse.Query(Parse.Role);
query.equalTo("name", 'user');
return query.first({useMasterKey: true});
//first will return one object or null
}).then(function(role) {
//.getUsers() is equal .relation('users')
if(role){
role.getUsers().add(user);
return role.save(null, { useMasterKey: true });
}else{
return Parse.Promise.error("no such role");
}
}, console.error).then(function() {
return user;
}, console.error);

关于node.js - 解析服务器设置用户 ACL 并分配角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com