アプリケーション自体に単一のUser
モデルを使用しています。と を使用して、activeadmin のモデル ページへのアクセスを制限する解決策adtiveadmin
を見つけました。上記の例では、ロールを作成するために定数を使用しており、gem を使用していることに注意してください。それでも、activeadmin のダッシュボードには簡単にアクセスできます。CMS でモデルにアクセスしようとすると、アプリケーションのルート ページにリダイレクトされ、このページにアクセスする権限がないというエラー メッセージが表示されます。CanCan
rolify
rolify
activeadmin の認証ページにリダイレクトされるように、activeadmin のダッシュボードとモデルへのアクセスを制限する方法はありますか?
これが私のactive_admin_resource初期化子です
#config/initializers/active_admin_resources.rb
ActiveAdmin::ResourceController.class_eval do
protected
def current_ability
@current_ability ||= AdminAbility.new(current_user)
end
end
能力クラスは次のように定義されています。
#app/models/admin_ability.rb
class AdminAbility < ActiveRecord::Base
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.has_role? :admin
can :manage, :all
end
end
終わり
Activeadmin のモデルは次のように定義されています。
#app/admin/some_model.rb
ActiveAdmin.register SomeModel do
controller.authorize_resource
end
最後に、activeadmin のルートは次のように定義されます。
#config/routes.rb
Rallypoint::Application.routes.draw do
ActiveAdmin.routes(self)
end