Skip to content

Commit c42d9bc

Browse files
committed
refactor sidekiq and admin auth
1 parent bfdd9a6 commit c42d9bc

File tree

5 files changed

+7
-18
lines changed

5 files changed

+7
-18
lines changed

config/initializers/rails_admin.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
RailsAdmin.config do |config|
44
config.authenticate_with do
5-
extend AdminAccessHelper
6-
7-
unless admin_user?
5+
unless AdminUserChecker.admin_user?(request)
86
render plain: 'Forbidden', status: :forbidden
97
end
108
end

config/routes.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
# frozen_string_literal: true
22

33
require 'sidekiq/web'
4-
require 'sidekiq_web_constraint'
4+
require 'admin_user_checker'
55

66
Rails.application.routes.draw do
77
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
88
mount ActionCable.server => '/cable'
99
mount Rswag::Api::Engine => '/api-docs'
1010
mount Rswag::Ui::Engine => '/api-docs'
11-
mount Sidekiq::Web => '/sidekiq', :constraints => SidekiqWebConstraint.new
11+
mount Sidekiq::Web => '/sidekiq', :constraints => ->(req) { AdminUserChecker.admin_user?(req) }
1212

1313
get '/sidekiq', to: ->(_env) {
1414
[
1515
401,
1616
{ 'Content-Type' => 'text/plain' },
1717
['Unauthorized']
1818
]
19-
}, constraints: ->(req) { !SidekiqWebConstraint.new.matches?(req) }
19+
}, constraints: ->(req) { !AdminUserChecker.admin_user?(req) }
2020
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
2121

2222
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.

config/warden.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
default: &default
22
remote_user_header: <%= ENV.fetch("REMOTE_USER_HEADER", "HTTP_X_AUTH_REQUEST_EMAIL") %>
3+
authorized_users: <%= ENV.fetch("AUTHORIZED_USERS", "esd122@psu.edu,smm5878@psu.edu,ajk5603@psu.edu,jml8735@psu.edu,test1@psu.edu") %>
34
admin_users: <%= ENV.fetch("ADMIN_USERS", "esd122@psu.edu,smm5878@psu.edu,ajk5603@psu.edu,jml8735@psu.edu,test1@psu.edu") %>
4-
sidekiq_users: <%= ENV.fetch("SIDEKIQ_USERS", "esd122@psu.edu,smm5878@psu.edu,ajk5603@psu.edu,jml8735@psu.edu,test1@psu.edu") %>
55

66
development:
77
<<: *default
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

3-
module AdminAccessHelper
4-
def admin_user?
3+
class AdminUserChecker
4+
def self.admin_user?(request)
55
user = request.env[Rails.application.config_for(:warden)['remote_user_header']]
66
admin_users = Rails.application.config_for(:warden)['admin_users'].split(',')
77
admin_users.include?(user)

lib/sidekiq_web_constraint.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)