Merge branch '8784-dir-listings'
[arvados.git] / apps / workbench / app / models / user.rb
index af1922adffa5fea605fca8b83edda1c73d0db45d..10da22db69e4540f8d7027df94b3fd7d43d98279 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)
@@ -35,11 +39,12 @@ class User < ArvadosBase
     super.reject { |k,v| %w(owner_uuid default_owner_uuid identity_url prefs).index k }
   end
 
-  def attribute_editable? attr, *args
-    (not (self.uuid.andand.match(/000000000000000$/) and self.is_admin)) and super
+  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
 
@@ -53,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