11453: Merge branch 'master' into 11453-federated-tokens
[arvados.git] / apps / workbench / app / models / user.rb
index c1656bde692ea1b0d454585663b1aca7ec4d3a8a..1f102dbf17acd3fb807110c34f4937686ebb9f2d 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 class User < ArvadosBase
   def initialize(*args)
     super(*args)
@@ -6,7 +10,7 @@ class User < ArvadosBase
   end
 
   def self.current
-    res = arvados_api_client.api self, '/current'
+    res = arvados_api_client.api self, '/current', nil, {}, false
     arvados_api_client.unpack_api_response(res)
   end
 
@@ -27,15 +31,20 @@ class User < ArvadosBase
                                                {}))
   end
 
+  def contents params={}
+    Group.contents params.merge(uuid: self.uuid)
+  end
+
   def attributes_for_display
     super.reject { |k,v| %w(owner_uuid default_owner_uuid identity_url prefs).index k }
   end
 
- def attribute_editable?(attr)
-    (not (self.uuid.andand.match(/000000000000000$/) and self.is_admin)) and super(attr)
+  def attribute_editable?(attr, ever=nil)
+    (ever or not (self.uuid.andand.match(/000000000000000$/) and
+                  self.is_admin)) and super
   end
 
-  def friendly_link_name
+  def friendly_link_name lookup=nil
     [self.first_name, self.last_name].compact.join ' '
   end
 
@@ -49,4 +58,17 @@ class User < ArvadosBase
     arvados_api_client.api(self, "/setup", params)
   end
 
+  def update_profile params
+    self.private_reload(arvados_api_client.api(self.class,
+                                               "/#{self.uuid}/profile",
+                                               params))
+  end
+
+  def deletable?
+    false
+  end
+
+   def self.creatable?
+    current_user and current_user.is_admin
+   end
 end