2013-02-05 42 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