解析:如何在Parse中限制只访问对象的某些属性?

时间:2015-10-05 13:26:09

标签: javascript parse-platform

我是Parse的初学者。我以前一直在使用django和django休息框架。我最近开始研究解析,我很喜欢它,但是我脑子里有一些混乱,我无法通过阅读文档来解决。

我想限制对对象的某些属性(/字段)的访问,而不是Parse Documentation

中描述的整个对象

例如我有

user1 = {
    name: "a",
    ...
}

user2 = {
    name: "b",
    ...
}

并且有一个对象

pet = {
    type: "Cat",
    name: "abc",
    hungry: true,
}

现在我需要一个设置,其中“user1”对象只能访问对象“pet”的“type”和“name”属性,而“user2”可以访问“pet”的所有三个属性。

如何在Parse中添加这些属性级别权限?我希望我明确指出。

1 个答案:

答案 0 :(得分:2)

ACL是最具体的控制手段,它只适用于对象级别。在对象中,您可以通过应用程序逻辑强制执行,或将对象分解为多个部分......

Pet = { name: "Toonces",
        type: "Cat",
        restrictedPet:<pointer to RestrictedPet>,
        ACL: everyone }

RestrictedPet = { hungry: true,
                  canDriveACar: true,
                  ACL: user2 }

在查询Pet时(例如,在JS中),您可以无条件地说:

var petQuery = new Parse.Query("Pet");
petQuery.include("restrictedPet");
petQuery.first(then(function(pet) {
    if (pet.restrictedPet) {
        // when user2 is running, she will see restricted attributes here
        console.log("Can my pet drive? " + pet.restrictedPet.canDriveACar);
    }
    // the remainder of the attributes are visible here, to all
});