16159: Pass token to expire to controller on logout.
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Mon, 5 Apr 2021 21:35:08 +0000 (18:35 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Mon, 5 Apr 2021 21:35:08 +0000 (18:35 -0300)
Also, adds a warning on the "current token" page about token's transciency.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

apps/workbench/app/controllers/sessions_controller.rb
apps/workbench/app/views/users/_current_token.html.erb

index bff0f9f1c96ed8267470c350e24f92d268f5baf5..6557fc0626a55627730b055a3a48920e89635b14 100644 (file)
@@ -10,8 +10,9 @@ class SessionsController < ApplicationController
   skip_before_action :ensure_arvados_api_exists
 
   def destroy
+    token = session[:arvados_api_token]
     session.clear
-    redirect_to arvados_api_client.arvados_logout_url(return_to: root_url)
+    redirect_to arvados_api_client.arvados_logout_url(return_to: root_url, api_token: token)
   end
 
   def logged_out
index 6b1ec33a2666545e7b2b71a6e012788a6caee995..543d4ebae46fe27581e9cde9b5200967a0f4982d 100644 (file)
@@ -14,6 +14,15 @@ SPDX-License-Identifier: AGPL-3.0 %>
 <div id="#manage_current_token" class="panel-body">
 <p>The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados with the proper permissions. For more information see <%= link_to raw('Getting an API token'), "#{Rails.configuration.Workbench.ArvadosDocsite}/user/reference/api-tokens.html", target: "_blank"%>.</p>
 <p>Paste the following lines at a shell prompt to set up the necessary environment for Arvados SDKs to authenticate to your <b><%= current_user.username %></b> account.</p>
+<%
+  wb2_url = nil
+  if Rails.configuration.Services.Workbench2.ExternalURL != URI("")
+    wb2_url = Rails.configuration.Services.Workbench2.ExternalURL.to_s
+    wb2_url += '/' if wb2_url[-1] != '/'
+    wb2_url += "token?api_token=" + Thread.current[:arvados_api_token]
+  end
+%>
+<p><b>IMPORTANT:</b> This token will expire when logged out. If you need a token for a long running process, it is recommended to <% if wb2_url %><a href="<%= wb2_url %>">get a token from Workbench2's Get API token dialog</a>. <% else %> create a new token using the CLI tools.<% end %></p>
 
 <pre>
 HISTIGNORE=$HISTIGNORE:'export ARVADOS_API_TOKEN=*'