cartodb-4.42/app/controllers/superadmin/superadmin_controller.rb
2024-04-06 05:25:13 +00:00

41 lines
1.1 KiB
Ruby

class Superadmin::SuperadminController < ActionController::Base
include Carto::ControllerHelper
include ::LoggerControllerHelper
before_filter :authenticate
around_filter :set_request_id
rescue_from StandardError, with: :rescue_from_superadmin_error
def self.ssl_required(*splat)
if Cartodb.config[:ssl_required] == true
force_ssl only: splat
end
end
def self.ssl_allowed(*_splat)
# noop
end
protected
def authenticate
return true if Rails.env.development? || authenticated?(CartoDB.extract_subdomain(request)) && current_user.admin
authenticate_or_request_with_http_basic do |username, password|
username == Cartodb.get_config(:superadmin, 'username') && password == Cartodb.get_config(:superadmin, 'password')
end
end
def current_user
super(CartoDB.extract_subdomain(request))
end
private
def rescue_from_superadmin_error(error)
log_rescue_from(__method__, error)
log_error(exception: error)
render(json: { errors: { message: error.inspect, backtrace: error.backtrace.inspect } }, status: 500)
end
end