Merge branch '1885-keep-proxy' into 2751-python-sdk-keep-proxy-support
[arvados.git] / services / api / app / controllers / arvados / v1 / virtual_machines_controller.rb
index e9d457f9bc513ec429898ccc9a21852e706b15cd..e17634812122ceed2f901286891a6393410ab292 100644 (file)
@@ -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 << {