Merge branch '8400-additional-gitignore' of https://github.com/wtsi-hgi/arvados close...
[arvados.git] / services / api / lib / whitelist_update.rb
index 7413edf4bc902d0dc488c5ea2b3492792f6d338a..a81f9924f01aa182bf35efc2e48dd326b3b20942 100644 (file)
@@ -2,7 +2,16 @@ module WhitelistUpdate
   def check_update_whitelist permitted_fields
     attribute_names.each do |field|
       if not permitted_fields.include? field.to_sym and self.send((field.to_s + "_changed?").to_sym)
-        errors.add field, "Illegal update of field #{field}"
+        errors.add field, "illegal update of field"
+      end
+    end
+  end
+
+  def validate_state_change
+    if self.state_changed?
+      unless state_transitions[self.state_was].andand.include? self.state
+        errors.add :state, "invalid state change from #{self.state_was} to #{self.state}"
+        return false
       end
     end
   end