X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/49a6ced3c7a540a7da7155ab1c3120a5227c620c..317064a4ddead0d64d6e312a21d2bb34504aa104:/apps/workbench/app/models/arvados_api_client.rb diff --git a/apps/workbench/app/models/arvados_api_client.rb b/apps/workbench/app/models/arvados_api_client.rb index a7ae8ba3aa..7574cf665b 100644 --- a/apps/workbench/app/models/arvados_api_client.rb +++ b/apps/workbench/app/models/arvados_api_client.rb @@ -6,6 +6,8 @@ class ArvadosApiClient end class InvalidApiResponseException < StandardError end + class AccessForbiddenException < StandardError + end @@profiling_enabled = Rails.configuration.profiling_enabled @@discovery = nil @@ -99,7 +101,11 @@ class ArvadosApiClient if msg.status_code != 200 errors = resp[:errors] errors = errors.join("\n\n") if errors.is_a? Array - raise "#{errors} [API: #{msg.status_code}]" + if msg.status_code == 403 + raise AccessForbiddenException.new "#{errors} [API: #{msg.status_code}]" + else + raise "#{errors} [API: #{msg.status_code}]" + end end if resp[:_profile] Rails.logger.info "API client: " \