2891: Guard against API server errors in Workbench layout.
authorBrett Smith <brett@curoverse.com>
Wed, 25 Jun 2014 20:39:24 +0000 (16:39 -0400)
committerBrett Smith <brett@curoverse.com>
Mon, 30 Jun 2014 19:08:22 +0000 (15:08 -0400)
The goal here is to generally avoid situations like #3031 where
trouble talking to the API server prevents us from even rendering an
error page.  Previous commits made us smarter about logged in status.
This guards against other API errors.

apps/workbench/app/views/layouts/application.html.erb

index 63de6c267e1b308dd8ffc5a8cd233ced20649169..3b4c7a2f749ba79e76bd4bb3b57bebde068aeaa1 100644 (file)
     </nav>
 
     <% if current_user.andand.is_active %>
+     <% begin %>
       <nav class="navbar navbar-default breadcrumbs" role="navigation">
         <ul class="nav navbar-nav navbar-left">
           <li class="dropdown">
           <% end %>
         </ul>
       </nav>
+     <% rescue ArvadosApiClient::NotLoggedInException %>
+       <% raise  # Let ApplicationController handle this. %>
+     <% rescue ArvadosApiClient::ApiError  # Just skip rendering projects.  %>
+     <% end %>
     <% end %>
 
     <div id="page-wrapper">