我試圖在節點js中使用sequelize作爲ORM(使用Postgres)來實現某種權限框架。經過幾個小時的研究,我發現用現有的npm模塊可以做到最接近的事情是使用acl和acl sequelize來支持我的堆棧。基於關係的節點js中的ACL
問題是,它看起來像acl模塊分配一個角色,該角色將獲得一組權限到特定資源的所有實例。但是,我需要根據該用戶的現有關係對實例進行權限。
作爲一個例子,考慮一個簡單論壇的權限系統。它使這些權限對於每個角色:
// 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", "*");
假設我想也增加對註冊用戶也可以編輯自己的帖子的能力,並且用戶具有他們所創建的所有職位的關係。
有沒有什麼辦法讓這個模塊做到這一點,或任何其他模塊,可以在數據庫/ ORM級別上支持這種行爲?
如果不是,我必須實現一個自定義的,那麼創建類似這樣的最佳方法是什麼?