Javascript 解析400错误的请求setACL

Javascript 解析400错误的请求setACL,javascript,parse-platform,Javascript,Parse Platform,我有一个“管理员”角色,我想分配给当前解析中的所有用户对象。然而,无论我尝试什么,我都会得到一个400错误。当我试图通过仪表板手动添加ACL时,它不会保存。例如,我将放入“{”角色:管理员“{”read:true,“write:true}}”,并在刷新时恢复为(未定义) 编辑:所以我尝试创建一个云代码函数。在尝试运行函数时,仍在“结果:错误:未定义的未授权”旁边收到400错误 main.js(云代码): 更新前: 理想情况下,我希望遍历Javascript文件中的所有用户,并使用以下代码更新他们

我有一个“管理员”角色,我想分配给当前解析中的所有用户对象。然而,无论我尝试什么,我都会得到一个400错误。当我试图通过仪表板手动添加ACL时,它不会保存。例如,我将放入“{”角色:管理员“{”read:true,“write:true}}”,并在刷新时恢复为(未定义)

编辑:所以我尝试创建一个云代码函数。在尝试运行函数时,仍在“结果:错误:未定义的未授权”旁边收到400错误

main.js(云代码):

更新前: 理想情况下,我希望遍历Javascript文件中的所有用户,并使用以下代码更新他们的角色:

// set up ACL for User object
var userACL = new Parse.ACL();
userACL.setRoleWriteAccess("Administrator", true);
userACL.setRoleReadAccess("Administrator", true);

// grab all Users
var user_query = new Parse.Query(Parse.User);
user_query.find( {
    success: function(users) {
        // querying all users works successfully
        console.log(users);
        // assign Administrator ACL to each user
        for (var i=0; i<users.length; i++) {
            users[i].setACL(userACL);
            users[i].save(null, {
                success: function(user) {
                    console.log("save successfully");
                },
                error: function(error) {
                    console.log("error saving: " + error.code + " " + error.message);
                }
            });
        }
    },
    error: function(error) {
        console.log("error: " + error.code + " " + error.message);
    }
});
//为用户对象设置ACL
var userACL=new Parse.ACL();
userACL.setRoleWriteAccess(“管理员”,true);
userACL.setRoleReadAccess(“管理员”,true);
//抓取所有用户
var user\u query=newparse.query(Parse.user);
用户查询。查找({
成功:功能(用户){
//查询所有用户成功
console.log(用户);
//为每个用户分配管理员ACL

对于(var i=0;i好的,我已经解决了我的问题。你不应该在你的云代码函数中使用Parse.initialize,你当然不能将它与useMasterKey一起使用。下面是我偶然发现的一个链接:


这应该出现在云代码文档中。

两件事。

您在帖子中为ACL列出的JSON无效,它缺少一个结束符}
。其次,您需要使用主密钥来执行这些类型的操作,并对其他用户进行操作。您是否使用cloud code?node编写此函数?@Fosco感谢您的回复。我听从了您的建议,但仍然收到错误。主帖子已更新。此外,缺少的JSON括号是SO的输入错误。它仍然无法在t中更新这将阻止用户访问他们自己的用户对象,应该被拒绝。我认为一个足够的解决方案是从数据浏览器(在“更多”下拉列表下)设置一个类权限,以将查找/更新/删除限制为管理员角色。@Fosco这就是我遇到的难题。我已经将其设置为“管理员”从一开始,我就设置了管理员角色和两个用户关系。也许我遗漏了一些明显的东西。这里是我的仪表板的一些屏幕截图:而且,奇怪的是,在云代码中使用主密钥时,我甚至不能查询我的用户。在不充分的解析文档中应该有很多东西!
    Parse.Cloud.run('modifyUser', {username: "myusername@email.com"}, {
        success: function(result) {
        // result is 'Hello world!'
        console.log(result);
         },
        error: function(error) {
            console.log("error: " + error.code + " " + error.message);
        }
    });
});
// set up ACL for User object
var userACL = new Parse.ACL();
userACL.setRoleWriteAccess("Administrator", true);
userACL.setRoleReadAccess("Administrator", true);

// grab all Users
var user_query = new Parse.Query(Parse.User);
user_query.find( {
    success: function(users) {
        // querying all users works successfully
        console.log(users);
        // assign Administrator ACL to each user
        for (var i=0; i<users.length; i++) {
            users[i].setACL(userACL);
            users[i].save(null, {
                success: function(user) {
                    console.log("save successfully");
                },
                error: function(error) {
                    console.log("error saving: " + error.code + " " + error.message);
                }
            });
        }
    },
    error: function(error) {
        console.log("error: " + error.code + " " + error.message);
    }
});