如何阻止我网站上的用户访问 Rails_admin 面板 URL?
How can I block a user on my website from going to Rails_admin panel URL?
当用户试图通过 URL 访问时,如何阻止 Rails_admin 面板 URL 并将用户重定向到主页?我可以从 routes.rb 开始吗?
我刚刚安装了 Rails_admin gem 并在 routes.rb 文件中添加了路由。
我可以在 routes.rb 文件中设置条件以不允许用户访问而只允许管理员访问吗?
这是我去 Rails_admin 的路线
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
他们的 docs describe 这个用例:
Authorization can be added using the authorize_with method. If you pass a block it will be triggered through a before_action on every action in Rails Admin.
RailsAdmin.config do |config|
config.authorize_with do
redirect_to main_app.root_path unless current_user.is_admin?
end
end
这个设置在config/initializers/rails_admin.rb
进一步说明
如文档中所述,这会在 every RailsAdmin 操作之前使用传递的块触发 before_action
调用。你可以这样想象
before_action :authorize_admin
def authorize_admin
redirect_to main_app.root_path unless current_user.is_admin?
end
这类似于向您的 ApplicationController 添加一个 before_action
触发器 - 只是它会自动仅通过 RailsAdmin 操作触发。
只需将此代码添加到您的 appication_controller.rb 文件中即可。
RailsAdmin.config do |config|
config.authorize_with do
if current_user.nil?
redirect_to main_app.root_path
else
redirect_to main_app.root_path unless current_user.admin?
end
end
end
这将在用户未登录或用户 public 时重定向页面。
当用户试图通过 URL 访问时,如何阻止 Rails_admin 面板 URL 并将用户重定向到主页?我可以从 routes.rb 开始吗?
我刚刚安装了 Rails_admin gem 并在 routes.rb 文件中添加了路由。
我可以在 routes.rb 文件中设置条件以不允许用户访问而只允许管理员访问吗?
这是我去 Rails_admin 的路线
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
他们的 docs describe 这个用例:
Authorization can be added using the authorize_with method. If you pass a block it will be triggered through a before_action on every action in Rails Admin.
RailsAdmin.config do |config|
config.authorize_with do
redirect_to main_app.root_path unless current_user.is_admin?
end
end
这个设置在config/initializers/rails_admin.rb
进一步说明
如文档中所述,这会在 every RailsAdmin 操作之前使用传递的块触发 before_action
调用。你可以这样想象
before_action :authorize_admin
def authorize_admin
redirect_to main_app.root_path unless current_user.is_admin?
end
这类似于向您的 ApplicationController 添加一个 before_action
触发器 - 只是它会自动仅通过 RailsAdmin 操作触发。
只需将此代码添加到您的 appication_controller.rb 文件中即可。
RailsAdmin.config do |config|
config.authorize_with do
if current_user.nil?
redirect_to main_app.root_path
else
redirect_to main_app.root_path unless current_user.admin?
end
end
end
这将在用户未登录或用户 public 时重定向页面。