我有两个Parse Classes Group 和 Post 。 群组有一个解析关系字段人(用户,在此群组中),帖子有一个指针字段组(这个帖子属于哪个组。)
当有人创建群组时,他/她将他的朋友添加到该群组中,这些群组正在保存在"人员"字段。
处于人际关系中的每个人都可以在小组中发帖。
我对在post和group对象上设置ACL有一些疑问。
Parse.Cloud.beforeSave(POST, function(request, response){
Parse.Cloud.useMasterKey();
var post = request.object;
var owner = post.get("owner");
var community = post.get("group")
var draft = post.get("draft");
if (!owner || !draft || !community) return response.error(PARAMETERS_NOT_FOUND);
if (draft.length <1) return response.error(FIELD_SIZE_LIMIT_NOT_ENOUGH)
var community = validateCommunity(community.id);
if (!community) return response.error(FAKE_COMMUNITY);
var people_to_share = community.relation("people");
var acl = new Parse.ACL();
acl.setWriteAccess(owner, true);
acl.setReadAccess(owner, true);
// Now here i want to set the acl of post for all people_to_share .... And that is working good ... but the problem is when i add new person in community (people field) .... I have to do set acl for him in every post of community.
post.setACL(acl);
response.success();
});
&#13;
答案 0 :(得分:0)
是。我用一个共同的角色解决了这个问题。 我为每个组创建了一个角色,并将其作为指针保存在Group Class中。每当将新人添加到组中时。我给他读取该组角色的权限。并从该组中删除人员。我删除了他的阅读权限。
同样,当创建新帖子时,我只是将帖子的acl设置为该组的角色。这是一种很好的动态方式。