11100: If caller sets collection.delete_at too early, set it to the earliest allowed...
[arvados.git] / services / api / app / models / collection.rb
index b45c178fb498af1eb588c55982ad38f2bfdeb70e..92300d6a8e2c206bdcbe44900c65ffd29b1bc2e1 100644 (file)
@@ -527,14 +527,16 @@ class Collection < ArvadosModel
       errors.add :delete_at, "must be set if trash_at is set, and must be nil otherwise"
     end
 
-    earliest_delete = ([@validation_timestamp, trash_at_was].compact.min +
-                       Rails.configuration.blob_signature_ttl.seconds)
-    if delete_at && delete_at < earliest_delete
-      errors.add :delete_at, "#{delete_at} is too soon: earliest allowed is #{earliest_delete}"
-    end
-
-    if delete_at && delete_at < trash_at
-      errors.add :delete_at, "must not be earlier than trash_at"
+    if delete_at
+      if delete_at < trash_at
+        errors.add :delete_at, "must not be earlier than trash_at"
+      else
+        earliest_delete = ([@validation_timestamp, trash_at_was].compact.min +
+                           Rails.configuration.blob_signature_ttl.seconds)
+        if delete_at < earliest_delete
+          self.delete_at = earliest_delete
+        end
+      end
     end
 
     true