Merge remote-tracking branch 'origin/master' into job-docker-images
[arvados.git] / services / api / app / models / link.rb
index af3918551e441a2ccaea47ea67e19e8f23a73b1f..1b3fc34eab926a4486f794a42e10f5721e7deb46 100644 (file)
@@ -10,6 +10,7 @@ class Link < ArvadosModel
   after_destroy :maybe_invalidate_permissions_cache
   attr_accessor :head_kind, :tail_kind
   validate :name_link_has_valid_name
+  validate :name_link_owner_is_tail
 
   api_accessible :user, extend: :common do |t|
     t.add :tail_uuid
@@ -92,4 +93,11 @@ class Link < ArvadosModel
       true
     end
   end
+
+  def name_link_owner_is_tail
+    if link_class == 'name'
+      self.owner_uuid = tail_uuid
+      ensure_owner_uuid_is_permitted
+    end
+  end
 end