2015-12-17 81 views
0

我正在回頭討論當前項目的Rails,並且正在討論使用何種auth gem。我的挑戰是,雖然有兩層角色。Pundit vs Rolify兩層角色

  1. 組織級角色 - 認爲SaaS的風格層,其中每個組織可以訪問不同的功能集

  2. 用戶級別的角色 - 更多傳統和我所使用的權威人士,cancancan等,爲前。

這裏的怪癖雖然是一個用戶可以屬於很多組織。用戶正在瀏覽的當前組織依賴於某些URL參數存儲在會話中。

任何人都可以共享一些代碼示例的授權級別角色以及組織的功能角色?

E.g.

用戶A屬於ORG 123和是他們可以創建/更新/刪除帖子但不能附加輪詢至後

用戶B屬於ORD 543和是管理員的管理員。他們可以創建/更新/刪除帖子,並可以創建投票,因爲他們的組織具有該功能。

有人建議使用rolify作爲用戶的組織和權威人士,但我覺得有一種更簡單的方法可以在不使用兩個單獨的系統的情況下完成此任務。

回答

1

如果我錯了,請原諒我,但我認爲您誤解了Pundit和Rolify的使用案例。

據我所知,像Pundit和CanCanCan這樣的寶石是爲了處理授權,而不是角色。同樣,Rolify不處理授權,但爲用戶處理建立角色。

如果你不認爲Rolify適合你,我會建議創建你自己的角色系統。在我看來,有一個爲實現兩個主要途徑:

  1. 用戶可以有一個角色
  2. 用戶可以擁有多個角色

通過它的聲音,你想實現多用戶角色。顯然有許多不同的方法來實現這一點,最直接的(但也許是不安全的)方法是在你的用戶模型中添加一個數組屬性,該模型存儲用戶擁有的不同角色類型。

相關問題