diff --git a/config/routes.rb b/config/routes.rb index a3e5a772d96..ce8a19fc7db 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -20,7 +20,8 @@ Discourse::Application.routes.draw do mount Sidekiq::Web => "/sidekiq" mount Logster::Web => "/logs" else - mount Sidekiq::Web => "/sidekiq", constraints: AdminConstraint.new + # only allow sidekie in master site + mount Sidekiq::Web => "/sidekiq", constraints: AdminConstraint.new(require_master: true) mount Logster::Web => "/logs", constraints: AdminConstraint.new end diff --git a/lib/admin_constraint.rb b/lib/admin_constraint.rb index 2d5df1f5bd4..923e5e806c0 100644 --- a/lib/admin_constraint.rb +++ b/lib/admin_constraint.rb @@ -2,7 +2,12 @@ require_dependency 'current_user' class AdminConstraint + def initialize(options={}) + @require_master = options[:require_master] + end + def matches?(request) + return false if @require_master && RailsMultisite::ConnectionManagement.current_db != "default" provider = Discourse.current_user_provider.new(request.env) provider.current_user && provider.current_user.admin? end