9587: add support for include_trash in groups_controller -> contents method
[arvados.git] / services / api / app / controllers / arvados / v1 / groups_controller.rb
index 7b0c0f003719b3b8fe1286da571ff60a7803127f..fc6489901a967a2dc667fc106e8f2178110420a8 100644 (file)
@@ -136,8 +136,13 @@ class Arvados::V1::GroupsController < ApplicationController
         end
       end.compact
 
-      @objects = klass.readable_by(*@read_users).
-        order(request_order).where(where_conds)
+      if klass == Collection and params[:include_trash]
+        @objects = klass.unscoped.readable_by(*@read_users).
+          order(request_order).where(where_conds)
+      else
+        @objects = klass.readable_by(*@read_users).
+          order(request_order).where(where_conds)
+      end
       klass_limit = limit_all - all_objects.count
       @limit = klass_limit
       apply_where_limit_order_params klass
@@ -149,8 +154,9 @@ class Arvados::V1::GroupsController < ApplicationController
 
       if klass_object_list[:limit] < klass_limit
         # object_list() had to reduce @limit to comply with
-        # max_index_database_read. We have to stop now.
-        break
+        # max_index_database_read. From now on, we'll do all queries
+        # with limit=0 and just accumulate items_available.
+        limit_all = all_objects.count
       end
     end