From 7fe0fc02e2b6381ee3616d19695023849092362a Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 21 Feb 2023 11:35:29 +0100 Subject: [PATCH] Set Sentry context for RailsAdmin --- app/controllers/rails_admin_controller.rb | 8 ++++++++ config/initializers/rails_admin.rb | 3 +++ 2 files changed, 11 insertions(+) create mode 100644 app/controllers/rails_admin_controller.rb diff --git a/app/controllers/rails_admin_controller.rb b/app/controllers/rails_admin_controller.rb new file mode 100644 index 00000000..6aac8ed3 --- /dev/null +++ b/app/controllers/rails_admin_controller.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class RailsAdminController < ApplicationController + # RailsAdmin does not include translations. Therefore, we fallback to English locales + skip_around_action :switch_locale + # We check for permissions in the RailsAdmin config. Therefore, we skip Pundit checks here. + skip_after_action :verify_authorized +end diff --git a/config/initializers/rails_admin.rb b/config/initializers/rails_admin.rb index 91200291..27283116 100644 --- a/config/initializers/rails_admin.rb +++ b/config/initializers/rails_admin.rb @@ -15,7 +15,10 @@ RailsAdmin.config do |config| ## == Pundit == # config.authorize_with :pundit + config.parent_controller = '::RailsAdminController' + config.authorize_with do + # Important! We need to check the authorization here, we skip Pundit checks in the RailsAdminController. unless current_user&.admin? flash[:alert] = t('application.not_authorized') redirect_to main_app.root_path