Rails Admin->仅在用户具有角色admin时访问

时间:2019-07-12 10:38:48

标签: ruby-on-rails ruby-on-rails-5

你好,我刚刚发现了gem railsadmin,我对其进行了配置,但是目前所有用户都可以通过在其url中键入admin来访问管理部分,我想限制访问权限,并且只允许具有admin角色的用户访问。

在我的用户表中,我已经有一个角色列,我写了“ admin”来创建一个用户->超级用户

RailsAdmin.config do |config|
 ## == Devise ==
  config.authenticate_with do
    warden.authenticate! scope: :user
  end
  config.current_user_method(&:current_user)
end

实际上所有用户都可以访问管理仪表板

1 个答案:

答案 0 :(得分:1)

如果您使用的是devise,则可以通过routes.rb

限制访问
authenticate :user, lambda { |u| u.role == "admin" } do
  mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
end

或者您可以使用cancancan (how to use)

之类的授权宝石