X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7ec5dedd6301ae84db941de986f2f0eacc4532e7..a01f0a9b9860ca574e0078a0e95afb783e711dc1:/apps/workbench/app/models/arvados_base.rb diff --git a/apps/workbench/app/models/arvados_base.rb b/apps/workbench/app/models/arvados_base.rb index 1ad0230512..2c2963ca59 100644 --- a/apps/workbench/app/models/arvados_base.rb +++ b/apps/workbench/app/models/arvados_base.rb @@ -289,11 +289,16 @@ class ArvadosBase < ActiveRecord::Base current_user end + def self.goes_in_folders? + false + end + def editable? (current_user and current_user.is_active and (current_user.is_admin or current_user.uuid == self.owner_uuid or - new_record?)) + new_record? or + (writable_by.include? current_user.uuid rescue false))) end def attribute_editable?(attr) @@ -301,12 +306,10 @@ class ArvadosBase < ActiveRecord::Base false elsif not (current_user.andand.is_active) false - elsif "uuid owner_uuid".index(attr.to_s) or current_user.is_admin + elsif attr == 'uuid' current_user.is_admin else - current_user.uuid == self.owner_uuid or - current_user.uuid == self.uuid or - new_record? + editable? end end @@ -351,6 +354,10 @@ class ArvadosBase < ActiveRecord::Base friendly_link_name end + def owner + ArvadosBase.find(owner_uuid) rescue nil + end + protected def forget_uuid!