FIX: Admins should be able to post short titles. This is especially important for when syndicating

a blog via the wordpress plugin into Discourse.
This commit is contained in:
Robin Ward
2013-06-29 17:57:10 -04:00
parent e076661759
commit 023d18cab2
3 changed files with 32 additions and 9 deletions

View File

@ -1,12 +1,21 @@
class TopicTitleLengthValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
if record.private_message?
private_message_title_validator = ActiveModel::Validations::LengthValidator.new({attributes: :title, in: SiteSetting.private_message_title_length, allow_blank: true})
private_message_title_validator.validate_each(record, attribute, value)
else
topic_title_validator = ActiveModel::Validations::LengthValidator.new({attributes: :title, in: SiteSetting.topic_title_length, allow_blank: true})
topic_title_validator.validate_each(record, attribute, value)
end
title_validator(record).validate_each(record, attribute, value)
end
private
def title_validator(record)
length_range = if record.user.try(:admin?)
1..SiteSetting.max_topic_title_length
elsif record.private_message?
SiteSetting.private_message_title_length
else
SiteSetting.topic_title_length
end
ActiveModel::Validations::LengthValidator.new({attributes: :title, in: length_range, allow_blank: true})
end
end