closes #5826
[arvados.git] / apps / workbench / app / models / arvados_api_client.rb
index 4e2d964e6d81b78c306dae6394edab17059653b2..aa3269a43d13055cbcd52928ba000551e5426639 100644 (file)
@@ -101,8 +101,13 @@ class ArvadosApiClient
     url.sub! '/arvados/v1/../../', '/'
 
     query = {
-      'api_token' => tokens[:arvados_api_token] || Thread.current[:arvados_api_token] || '',
-      'reader_tokens' => (tokens[:reader_tokens] || Thread.current[:reader_tokens] || []).to_json,
+      'api_token' => (tokens[:arvados_api_token] ||
+                      Thread.current[:arvados_api_token] ||
+                      ''),
+      'reader_tokens' => ((tokens[:reader_tokens] ||
+                           Thread.current[:reader_tokens] ||
+                           []) +
+                          [Rails.configuration.anonymous_user_token]).to_json,
     }
     if !data.nil?
       data.each do |k,v|
@@ -120,18 +125,14 @@ class ArvadosApiClient
       query["_method"] = "GET"
     end
 
-    # Use anonymous token if available when it is a GET request
-    if ((query["_method"] == "GET") or (query[:_method] == "GET")) && !Thread.current[:user]
-      if Rails.configuration.respond_to? :anonymous_user_token
-        query["api_token"] = Rails.configuration.anonymous_user_token
-      end
-    end
-
     if @@profiling_enabled
       query["_profile"] = "true"
     end
 
     header = {"Accept" => "application/json"}
+    if Rails.configuration.include_accept_encoding_header_in_api_requests
+      header["Accept-Encoding"] = "gzip, deflate"
+    end
 
     profile_checkpoint { "Prepare request #{url} #{query[:uuid]} #{query[:where]} #{query[:filters]} #{query[:order]}" }
     msg = @client_mtx.synchronize do