如何使用parse.com数据浏览器将现有用户与新创建的角色相关联?

时间:2014-09-26 02:29:58

标签: parse-platform

我在parse.com数据浏览器中创建了一个角色。我还创建了一些User对象。我无法将我已创建的用户与该角色相关联。

我只能通过点击"查看关系"来查看将用户与角色相关联的方法。 Role对象的按钮,然后创建一个新用户。但是,我不想要新用户。我想将现有用户与角色相关联。

如何使用parse.com数据浏览器将现有用户与新创建的角色相关联?

2 个答案:

答案 0 :(得分:2)

据我了解,这是不可能通过网站。最快的方法是使用cUrl示例并将其修改以供您自己使用。当您登录Parse.com并转到documentation for the REST API call to update a role时,您可以使用自己的API密钥复制示例。剩下要做的就是更改用户ID和角色ID。它会给你带来这样的东西:

curl -X PUT \
  -H "X-Parse-Application-Id: <APP-ID>" \
  -H "X-Parse-Master-Key: <MASTER-KEY>" \
  -H "Content-Type: application/json" \
  -d '{
        "users": {
          "__op": "AddRelation",
          "objects": [
            {
              "__type": "Pointer",
              "className": "_User",
              "objectId": "<USER-ID>"
            }
          ]
        }
      }' \
  https://api.parse.com/1/roles/<ROLE-ID>

答案 1 :(得分:0)

目前无法在数据浏览器界面中向对象添加对象(包括将用户添加到角色)

请参阅https://www.parse.com/questions/how-can-i-add-objects-to-a-relation

根据您的设置(例如,如果您已使用CLP和/或ACL设置权限),您还可以将REST API密钥与cURL一起使用或使用您的应用程序(在应用程序本身或云代码中) - 另见https://parse.com/docs/rest/guide#roles-updating-roles

使用适当的名称,ID和密钥替换以下相关标签(例如adminUSER_ID

// Find admin role
var Role = Parse.Object.extend("_Role"); 
var query = new Parse.Query(Role); 
query.equalTo("name", "admin"); 

query.find({ success: function(results) { 
    var roleObject = results[0];

    // Add users here

    // Specify users to add
    var usersToAddToRole = ["USER_ID"];
    for (var i = 0; i < usersToAddToRole.length; i++) {
        roleObject.getUsers().add(usersToAddToRole[i]);
    }

    // Or add current user only 
    var user = Parse.User.current();
    var relation = roleObject.relation("users");
    relation.add(user);

    roleObject.save();
} });

上面Parse问题的链接还建议您可以使用REST API密钥而不是Master密钥发出cURL请求(不要在客户端应用程序中使用Master密钥 - 仅在服务器上或在手动cURL请求中使用!)

curl -X PUT \
-H "X-Parse-Application-Id: APP_ID" \
-H "X-Parse-REST-API-Key: REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"users":{"__op":"AddRelation","objects":[{"__type":"Pointer","className":"_User","objectId":"USER_ID"}]}}' \
https://api.parse.com/1/roles/ROLE_ID

使用REST API管理角色的主要文档在https://parse.com/docs/rest/guide#roles 有关安全性的更多详细信息,请查看http://blog.parse.com/learn/engineering/parse-security-i-are-you-the-key-master/