Merge branch '108963480-model_validation' into staging

This commit is contained in:
Stas 2015-11-27 11:19:40 +02:00
commit c5019cd0fc

View file

@ -30,6 +30,7 @@ class Contact < ActiveRecord::Base
length: { maximum: 100, message: :too_long_contact_code } length: { maximum: 100, message: :too_long_contact_code }
validate :ident_valid_format? validate :ident_valid_format?
validate :uniq_statuses? validate :uniq_statuses?
validate :validate_html
after_initialize do after_initialize do
self.statuses = [] if statuses.nil? self.statuses = [] if statuses.nil?
@ -221,6 +222,17 @@ class Contact < ActiveRecord::Base
end end
end end
def validate_html
self.class.columns.each do |column|
next unless column.type == :string
c_name = column.name
val = read_atribute(c_name)
errors.add(c_name, :invalid) if val.include?('<') || val.include?('>') || val.include?('%3C') || val.include?('%3E')
return
end
end
def uniq_statuses? def uniq_statuses?
return true unless statuses.detect { |s| statuses.count(s) > 1 } return true unless statuses.detect { |s| statuses.count(s) > 1 }
errors.add(:statuses, :not_uniq) errors.add(:statuses, :not_uniq)