17119: Merge branch 'master' into 17119-add-filter-groups
[arvados.git] / apps / workbench / app / models / group.rb
index 8d8d3900c75a95ea718e36d1f1fb0d7d0e2a7ead..ea3da2db5ee828702d98931906aad8caf2946ee3 100644 (file)
@@ -1,4 +1,32 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 class Group < ArvadosBase
+  def self.goes_in_projects?
+    true
+  end
+
+  def self.copies_to_projects?
+    false
+  end
+
+  def self.contents params={}
+    res = arvados_api_client.api self, "/contents", {
+      _method: 'GET'
+    }.merge(params)
+    ret = ArvadosResourceList.new
+    ret.results = arvados_api_client.unpack_api_response(res)
+    ret
+  end
+
+  def editable?
+    if group_class == 'filter'
+      return false
+    end
+    super
+  end
+
   def contents params={}
     res = arvados_api_client.api self.class, "/#{self.uuid}/contents", {
       _method: 'GET'
@@ -9,12 +37,18 @@ class Group < ArvadosBase
   end
 
   def class_for_display
-    group_class == 'folder' ? 'Folder' : super
+    (group_class == 'project' or group_class == 'filter') ? 'Project' : super
   end
 
-  def editable?
-    respond_to?(:writable_by) and
-      writable_by and
-      writable_by.index(current_user.uuid)
+  def textile_attributes
+    [ 'description' ]
+  end
+
+  def self.creatable?
+    false
+  end
+
+  def untrash
+    arvados_api_client.api(self.class, "/#{self.uuid}/untrash", {"ensure_unique_name" => true})
   end
 end