mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
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:
@ -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
|
||||
|
Reference in New Issue
Block a user