2013-02-05 44 views
0

我正在尋找在我的Rails應用程序上設置簡單的基於角色的訪問而不使用數據庫,我們使用CAS來處理身份驗證,因此可以從CAS變量中捕獲用戶名。使用CanCan與靜態角色列表

我的想法是將用戶名映射到散列中的特定角色(在application.rb中,請參閱下面的想法)),然後使用該角色來確定內容是否可見。

ROLES = { 
     'admin' => [ 'username1', 'username2'], 
     'standard_user' => ['username3'] 
     } 

我被告知看康康舞寶石,但似乎想從用戶模型的角色信息,我不想安裝,主要是因爲我們打算越過角色信息作爲不久的將來另一個CAS變量。

所以我想知道如果任何人有,如果這個計劃是做,能,也許指向我,可能會幫助我

回答

0

即使在這種設置中的任何代碼片段的方向,你應該能夠任何想法使用康康。如果你有,你存儲username和能力解決這個模型旋轉的用戶模型,嘗試ability.rb

# user.rb 
ROLES = { 
    admin: %w[username1 username2], 
    standard_user: %w[username3] 
} 

# ability.rb 
user ||= User.new # username is blank 

if User::ROLES[:admin].include?(user.username) 
    can :manage, :all 

elsif User::ROLES[:standard_user].include?(user.username) 
    cannot :manage, Invoices 

else 
    ... 
end 
+0

謝謝你的提示下,這在今天晚些時候我將測試,如果它的工作原理將標誌着這作爲答案 – user891380