5160: Workbench hides anonymous sharing when browsing disabled.
[arvados.git] / apps / workbench / app / controllers / application_controller.rb
index 3f36a311a75dd0ea1d081e417d930f0bc1a2abac..b52591bc0caa5ff1b14da6ac7485a829eaeab1d8 100644 (file)
@@ -8,7 +8,6 @@ class ApplicationController < ActionController::Base
   ERROR_ACTIONS = [:render_error, :render_not_found]
 
   around_filter :thread_clear
-  before_filter :permit_anonymous_browsing_for_public_data
   around_filter :set_thread_api_token
   # Methods that don't require login should
   #   skip_around_filter :require_thread_api_token
@@ -436,6 +435,7 @@ class ApplicationController < ActionController::Base
 
   protected
 
+  helper_method :strip_token_from_path
   def strip_token_from_path(path)
     path.sub(/([\?&;])api_token=[^&;]*[&;]?/, '\1')
   end
@@ -498,7 +498,7 @@ class ApplicationController < ActionController::Base
       else
         @object = model_class.find(params[:uuid])
       end
-    rescue ArvadosApiClient::NotFoundException, RuntimeError => error
+    rescue ArvadosApiClient::NotFoundException, ArvadosApiClient::NotLoggedInException, RuntimeError => error
       if error.is_a?(RuntimeError) and (error.message !~ /^argument to find\(/)
         raise
       end
@@ -530,7 +530,6 @@ class ApplicationController < ActionController::Base
   def setup_user_session
     return false unless params[:api_token]
     Thread.current[:arvados_api_token] = params[:api_token]
-    Thread.current[:arvados_anonymous_api_token] = nil
     begin
       user = User.current
     rescue ArvadosApiClient::NotLoggedInException
@@ -566,12 +565,6 @@ class ApplicationController < ActionController::Base
     end
   end
 
-  def permit_anonymous_browsing_for_public_data
-    if !Thread.current[:arvados_api_token] && !params[:api_token] && !session[:arvados_api_token]
-      Thread.current[:arvados_anonymous_api_token] = Rails.configuration.anonymous_user_token
-    end
-  end
-
   # Save the session API token in thread-local storage, and yield.
   # This method also takes care of session setup if the request
   # provides a valid api_token parameter.