0

Active Admin 内の AdminUsers 内のロールを利用しており、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

明示的に述べるために、can't :manage, AdminUser under manager も追加しました。

「マネージャー」ロールとしてログインしているときに AdminUser メニューを非表示にしようとしています。現在、まだそのユーザーに表示されていますが、クリックすると、認証されていないことが正しく通知されます。

4

1 に答える 1

0

私はこれを理解しました。

次のような 2 つのメニュー行がありました: menu :if => proc{ can?(:manage, AdminUser) } menu :label => "Users"

2 行目は最初の行を台無しにしていたので、次のように変更しました。

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

そしてそれは正しく機能しました。

于 2012-07-31T18:29:53.677 に答える