Skip to content

Commit

Permalink
Show which SD made a SD request
Browse files Browse the repository at this point in the history
  • Loading branch information
thesecretmaster committed Mar 18, 2019
1 parent 6a84586 commit a79a831
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions app/controllers/application_controller.rb
Expand Up @@ -73,14 +73,24 @@ def verify_at_least_one_diamond

private

def smokey_route?
{
posts: :create,
feedbacks: :create,
deletion_logs: :create,
statistics: :create,
status: :status_update
}.dig(controller_name.to_sym) == action_name.to_sym
end

def redis_log_request
Rack::MiniProfiler.step('Logging to redis') do
redis = redis(logger: true)
@request_time ||= Time.now.to_f
request.set_header 'redis_logs.log_key', redis_log_key
request.set_header 'redis_logs.timestamp', @request_time
request.set_header 'redis_logs.request_id', request.uuid
unless session[:redis_log_id].present?
unless session[:redis_log_id].present? || is_smokey_route?
session[:redis_log_id] = SecureRandom.base64
session[:redis_log_id] = SecureRandom.base64 while redis.exists("session/#{session[:redis_log_id]}")
end
Expand All @@ -89,8 +99,9 @@ def redis_log_request
path: request.filtered_path,
impersonator_id: session[:impersonator_id],
user_id: user_signed_in? ? current_user.id : nil,
session_id: session[:redis_log_id],
sha: CurrentCommit
session_id: smokey_route? ? params[:key] : session[:redis_log_id],
sha: CurrentCommit,
smoke_detector_id: is_smokey_route? ? SmokeDetector.find_by(access_token: params[:key])&.id : nil
},
subspaces: {
request_headers: headers.to_h,
Expand All @@ -113,8 +124,7 @@ def check_auth_required
return unless SiteSetting['require_auth_all_pages']
return if user_signed_in? || devise_controller? || (controller_name == 'users' && action_name == 'missing_privileges')

smokey_routes = { posts: :create, feedbacks: :create, deletion_logs: :create, statistics: :create, status: :status_update }
return if smokey_routes.include?(controller_name.to_sym) && smokey_routes[controller_name].to_s == action_name
return if smokey_route?

redis_log 'Redirected to login page because require_auth_all_pages is set'
flash[:warning] = 'You need to have an account to view metasmoke pages.'
Expand Down

0 comments on commit a79a831

Please sign in to comment.