around_action :better_errors_allow_inline, :if => proc { Rails.env.development? }
attr_accessor :current_user
+
helper_method :current_user
+ helper_method :preferred_langauges
private
elsif session[:token]
session[:user] = current_user.id if self.current_user = User.authenticate(:token => session[:token])
end
- rescue StandardError => ex
- logger.info("Exception authorizing user: #{ex}")
+ rescue StandardError => e
+ logger.info("Exception authorizing user: #{e}")
reset_session
self.current_user = nil
end
end
def check_api_readable
- if api_status == :offline
+ if api_status == "offline"
report_error "Database offline for maintenance", :service_unavailable
false
end
end
def check_api_writable
- unless api_status == :online
+ unless api_status == "online"
report_error "Database offline for maintenance", :service_unavailable
false
end
def database_status
if Settings.status == "database_offline"
- :offline
+ "offline"
elsif Settings.status == "database_readonly"
- :readonly
+ "readonly"
else
- :online
+ "online"
end
end
def api_status
status = database_status
- if status == :online
+ if status == "online"
if Settings.status == "api_offline"
- status = :offline
+ status = "offline"
elsif Settings.status == "api_readonly"
- status = :readonly
+ status = "readonly"
end
end
status
def api_call_handle_error
yield
- rescue ActiveRecord::RecordNotFound => ex
+ rescue ActionController::UnknownFormat
+ head :not_acceptable
+ rescue ActiveRecord::RecordNotFound => e
head :not_found
- rescue LibXML::XML::Error, ArgumentError => ex
- report_error ex.message, :bad_request
- rescue ActiveRecord::RecordInvalid => ex
- message = "#{ex.record.class} #{ex.record.id}: "
- ex.record.errors.each { |attr, msg| message << "#{attr}: #{msg} (#{ex.record[attr].inspect})" }
+ rescue LibXML::XML::Error, ArgumentError => e
+ report_error e.message, :bad_request
+ rescue ActiveRecord::RecordInvalid => e
+ message = "#{e.record.class} #{e.record.id}: "
+ e.record.errors.each { |attr, msg| message << "#{attr}: #{msg} (#{e.record[attr].inspect})" }
report_error message, :bad_request
- rescue OSM::APIError => ex
- report_error ex.message, ex.status
- rescue AbstractController::ActionNotFound => ex
+ rescue OSM::APIError => e
+ report_error e.message, e.status
+ rescue AbstractController::ActionNotFound => e
raise
- rescue StandardError => ex
- logger.info("API threw unexpected #{ex.class} exception: #{ex.message}")
- ex.backtrace.each { |l| logger.info(l) }
- report_error "#{ex.class}: #{ex.message}", :internal_server_error
+ rescue StandardError => e
+ logger.info("API threw unexpected #{e.class} exception: #{e.message}")
+ e.backtrace.each { |l| logger.info(l) }
+ report_error "#{e.class}: #{e.message}", :internal_server_error
end
##
OSM::Timer.timeout(Settings.web_timeout, Timeout::Error) do
yield
end
- rescue ActionView::Template::Error => ex
- ex = ex.cause
+ rescue ActionView::Template::Error => e
+ e = e.cause
- if ex.is_a?(Timeout::Error) ||
- (ex.is_a?(ActiveRecord::StatementInvalid) && ex.message =~ /execution expired/)
+ if e.is_a?(Timeout::Error) ||
+ (e.is_a?(ActiveRecord::StatementInvalid) && e.message.include?("execution expired"))
render :action => "timeout"
else
raise
end
def current_ability
- # Use capabilities from the oauth token if it exists and is a valid access token
- if Authenticator.new(self, [:token]).allow?
- Ability.new(nil).merge(Capability.new(current_token))
- else
- Ability.new(current_user)
- end
+ Ability.new(current_user)
end
def deny_access(_exception)