X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4c7e16130d85e5395439d5ddc505c1afbc0325f9..27ffca811e6f43225fc82d582d1962eebbd1ab6e:/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb diff --git a/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb b/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb index e9d457f9bc..e176348121 100644 --- a/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb +++ b/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb @@ -1,16 +1,29 @@ class Arvados::V1::VirtualMachinesController < ApplicationController - before_filter :admin_required, :only => :get_all_logins + skip_before_filter :find_object_by_uuid, :only => :get_all_logins + skip_before_filter :render_404_if_no_object, :only => :get_all_logins + before_filter(:admin_required, + :only => [:logins, :get_all_logins]) + + def logins + get_all_logins + end + def get_all_logins @users = {} User.includes(:authorized_keys).all.each do |u| @users[u.uuid] = u end @response = [] - @vms = VirtualMachine.includes(:login_permissions).all + @vms = VirtualMachine.includes(:login_permissions) + if @object + @vms = @vms.where('uuid=?', @object.uuid) + else + @vms = @vms.all + end @vms.each do |vm| vm.login_permissions.each do |perm| user_uuid = perm.tail_uuid - @users[user_uuid].andand.authorized_keys.each do |ak| + @users[user_uuid].andand.authorized_keys.andand.each do |ak| username = perm.properties.andand['username'] if username @response << {