Use current_user to select API response template. fixes #1594
[arvados.git] / services / api / app / controllers / arvados / v1 / nodes_controller.rb
index 67a5fab6ad75185a023dd7e2d06e19495ae5a053..33c7ea7e240102ffca6cec91cb5c934d4eeb5d7c 100644 (file)
@@ -1,5 +1,5 @@
 class Arvados::V1::NodesController < ApplicationController
-  skip_before_filter :login_required, :only => :ping
+  skip_before_filter :require_auth_scope_all, :only => :ping
 
   def create
     @object = Node.new
@@ -8,10 +8,22 @@ class Arvados::V1::NodesController < ApplicationController
     show
   end
 
+  def self._ping_requires_parameters
+    { ping_secret: true }
+  end
   def ping
     @object.ping({ ip: params[:local_ipv4] || request.env['REMOTE_ADDR'],
                    ping_secret: params[:ping_secret],
                    ec2_instance_id: params[:instance_id] })
     show
   end
+
+  def index
+    if current_user.andand.is_admin
+      super
+    else
+      @objects = model_class.where('last_ping_at >= ?', Time.now - 1.hours)
+      render_list
+    end
+  end
 end