我有一个Angular服务,它接受一个roleId和userId,并将用户分配给该角色,并在User中为该角色创建一个指针。
app.service('CRUD', function () {
this.addUserToRole = function (roleId, userId) {
// first we have to find the role we're adding to
var query = new Parse.Query(Parse.Role);
return query.get(roleId, {
success: function (role) {
// then add the user to it
var Database = Parse.Object.extend("User");
var query = new Parse.Query(Database);
console.log(role);
return query.get(userId, {
success: function (user) {
console.log(user);
role.getUsers().add(user);
role.save();
// now we need to tell the user that he has this role
console.log(user);
user.attributes.role.add(role);
user.save();
return user;
},
error: function (err) {
return err;
}
});
},
error: function (err) {
console.log(err);
}
});
}
});
我在{"code":206,"error":"Parse::UserCannotBeAlteredWithoutSessionError"}
user.save();
经过一番研究,我到达了this网站。他将此代码段用作JS SDK示例:
Parse.Cloud.run('modifyUser', { username: 'userA' }, {
success: function(status) {
// the user was updated successfully
},
error: function(error) {
// error
}
});
并提及有关useMasterKey()
函数的内容。
我仍然不确定如何修复此错误。
答案 0 :(得分:5)
添加
Parse.Cloud.useMasterKey();
在你的功能开始时。
答案 1 :(得分:0)
将其设置为后台作业。这就是我认为你发现的代码片段,以及一种更简单,更安全的方式来抚摸用户和角色