基于关系的节点js中的ACL

我试图在Node js中实现某种权限框架,使用sequelize作为ORM(与Postgres)。 经过几个小时的研究,我能find的与现有npm模块做的最接近的事情是使用acl和acl sequelize来支持我的堆栈。

问题是,它看起来像acl模块分配一个angular色,该angular色将获得一组权限到特定资源的所有实例 。 但是,我需要根据该用户的现有关系对实例进行权限许可。

作为一个例子,考虑一个简单论坛的权限系统。 它为每个angular色提供这些权限:

// allow guests to view posts acl.allow("guest", "post", "view"); // allow registered users to view and create posts acl.allow("registered users", "post", ["view", "create"]); // allow administrators to perform any action on posts acl.allow("administrator", "post", "*"); 

假设我也想为注册用户添加编辑他们自己post的function,并且用户与他们创build的所有post有关系。

有没有办法让这个模块做到这一点,或任何其他模块,可以在数据库/ ORM级别上支持这种行为?

如果没有,我必须实现一个自定义的,最好的方法来创build这样的东西。