私の AA アプリでは、次の手順を使用して、管理者以外のユーザーに表示したくないメニューを非表示にします。
menu :if => proc{ current_user.is_admin? }
ただし、これは、これらのユーザーが URL に /admin/users を入力して、ユーザーのメニュー コンテンツにアクセスすることを妨げるものではありません。管理者以外のユーザーが非表示のメニューにアクセスできないようにする最善の方法は何ですか?
私の AA アプリでは、次の手順を使用して、管理者以外のユーザーに表示したくないメニューを非表示にします。
menu :if => proc{ current_user.is_admin? }
ただし、これは、これらのユーザーが URL に /admin/users を入力して、ユーザーのメニュー コンテンツにアクセスすることを妨げるものではありません。管理者以外のユーザーが非表示のメニューにアクセスできないようにする最善の方法は何ですか?
これは cancan で行うか、次のように独自のフィルターを作成できます。
controller do
before_filter :check_admin
def check_admin
unless current_user.is_admin?
redirect_to "/", :error => "Access denied"
end
end
end
cancan gemの場合、能力ファイルを定義する必要があり、それから使用できます
controller.authorize_resource
activeadmin が提供するメソッド。