我真在研究LeanCloud的ACL机制,但有一种场景不知道有何好的实现方式。
场景:一个帖子,需要限制只有部分人能加评论。这部分人可能是某个子论坛的成员,也可能是发帖人的好友等。

按照LeanCloud的例子,Comment里存一个Pointer指向这个Post,为了能实现上面场景描述的功能,能否有办法扩展ACL,使得只有部分人能建指向该Post的pointer?

对这个问题也许可以反过来处理:Post里面保存一个指向comment的point array,在创建comment之前先检查是否有权限update(write)post的point array,如果可以,则保存comment,如果不行,则放弃comment。

不过由此而来的另外一个问题是,如果只允许好友添加comment,可能需要为每一个用户都建立一个role(myfriendrole),然后为用户的每一个post都设置类似{"*":{"read":true},"myfriend":{"write":true}},这样有两个问题:

1)用户的好友都获得了对post的写权限,这明显是不合理的
2)用户数量多的时候会存在同样数量的角色

不知道这样做合适不合适,上述问题如何解决