mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: add censored_pattern setting to censor posts using regex
This commit is contained in:
25
lib/validators/regex_setting_validator.rb
Normal file
25
lib/validators/regex_setting_validator.rb
Normal file
@@ -0,0 +1,25 @@
|
||||
class RegexSettingValidator
|
||||
|
||||
LOREM = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget sem non elit tincidunt rhoncus.'.freeze
|
||||
|
||||
def initialize(opts={})
|
||||
@opts = opts
|
||||
end
|
||||
|
||||
def valid_value?(val)
|
||||
!val.present? || valid_regex?(val)
|
||||
end
|
||||
|
||||
# Check that string is a valid regex, and that it doesn't match most of the lorem string.
|
||||
def valid_regex?(val)
|
||||
r = Regexp.new(val)
|
||||
matches = r.match(LOREM)
|
||||
matches.nil? || matches[0].length < (LOREM.length - 10)
|
||||
rescue
|
||||
false
|
||||
end
|
||||
|
||||
def error_message
|
||||
I18n.t('site_settings.errors.invalid_regex')
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user