X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b92203411f6f6adaef1c2af62495830f13f4fa14..42c20b25e1325124b88e3b9b285544dc41122b56:/apps/workbench/app/controllers/virtual_machines_controller.rb diff --git a/apps/workbench/app/controllers/virtual_machines_controller.rb b/apps/workbench/app/controllers/virtual_machines_controller.rb index 73231f8cc0..c743773141 100644 --- a/apps/workbench/app/controllers/virtual_machines_controller.rb +++ b/apps/workbench/app/controllers/virtual_machines_controller.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + class VirtualMachinesController < ApplicationController def index @objects ||= model_class.all @@ -6,7 +10,7 @@ class VirtualMachinesController < ApplicationController Link.where(tail_uuid: current_user.uuid, head_uuid: @objects.collect(&:uuid), link_class: 'permission', - name: 'can_login'). + name: 'can_login').with_count("none"). each do |perm_link| if perm_link.properties.andand[:username] @vm_logins[perm_link.head_uuid] ||= [] @@ -21,11 +25,14 @@ class VirtualMachinesController < ApplicationController end def webshell - return render_not_found if not Rails.configuration.shell_in_a_box_url - @webshell_url = Rails.configuration.shell_in_a_box_url % { - uuid: @object.uuid, - hostname: @object.hostname, - } + return render_not_found if Rails.configuration.Services.WebShell.ExternalURL == URI("") + webshell_url = URI(Rails.configuration.Services.WebShell.ExternalURL) + if webshell_url.host.index("*") != nil + webshell_url.host = webshell_url.host.sub("*", @object.hostname) + else + webshell_url.path = "/#{@object.hostname}" + end + @webshell_url = webshell_url.to_s render layout: false end