2012-07-30 59 views
0

我利用Active Admin內AdminUsers中的角色,並使用CanCan定義跨不同資源的訪問。ActiveAdmin和CanCan

它在限制訪問方面運行良好,但我遇到了隱藏基於角色的菜單的麻煩。

按照ActiveAdmin文檔,下面應該工作:

menu :if => proc{ can?(:manage, AdminUser) }  

在我ability.rb模型文件,我有

case user.role  
    when "admin" 
can :manage, :all 
cannot :manage, Company 
    when "manager" 
    can :manage, Program 
can :manage, Client 

我甚至增加不能:管理,管理用戶下的經理以便明確說明它。

我想以「manager」角色登錄時隱藏AdminUser菜單。目前,它仍然顯示給該用戶,但如果我點擊它,它正確地告訴我,我沒有被授權。

回答

0

我想通了。

我有兩個菜單行如下: 菜單:如果=> PROC {可以?(:管理,管理用戶)} 菜單:標籤=> 「用戶」

第二行被搞亂了第一一,我修改爲:

menu :if => proc{ can?(:manage, AdminUser) }, :label => "Users" 

它工作正常。