Add sensitive words setting
This commit is contained in:
parent
0dbc070037
commit
cd00d7f533
12 changed files with 128 additions and 1 deletions
25
app/models/admin/sensitive_word.rb
Normal file
25
app/models/admin/sensitive_word.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::SensitiveWord
|
||||
class << self
|
||||
def sensitive?(text, spoiler_text)
|
||||
exposure_text = (spoiler_text.presence || text)
|
||||
(spoiler_text.blank? && sensitive_words.any? { |word| text.include?(word) }) ||
|
||||
sensitive_words_for_full.any? { |word| exposure_text.include?(word) }
|
||||
end
|
||||
|
||||
def modified_text(text, spoiler_text)
|
||||
spoiler_text.present? ? "#{spoiler_text}\n\n#{text}" : text
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sensitive_words
|
||||
Setting.sensitive_words || []
|
||||
end
|
||||
|
||||
def sensitive_words_for_full
|
||||
Setting.sensitive_words_for_full || []
|
||||
end
|
||||
end
|
||||
end
|
|
@ -38,6 +38,8 @@ class Form::AdminSettings
|
|||
enable_block_emoji_reaction_settings
|
||||
hide_local_users_for_anonymous
|
||||
post_hash_tags_max
|
||||
sensitive_words
|
||||
sensitive_words_for_full
|
||||
).freeze
|
||||
|
||||
INTEGER_KEYS = %i(
|
||||
|
@ -70,6 +72,8 @@ class Form::AdminSettings
|
|||
|
||||
STRING_ARRAY_KEYS = %i(
|
||||
ng_words
|
||||
sensitive_words
|
||||
sensitive_words_for_full
|
||||
).freeze
|
||||
|
||||
attr_accessor(*KEYS)
|
||||
|
|
|
@ -36,6 +36,7 @@ class UserRole < ApplicationRecord
|
|||
manage_roles: (1 << 17),
|
||||
manage_user_access: (1 << 18),
|
||||
delete_user_data: (1 << 19),
|
||||
manage_sensitive_words: (1 << 29),
|
||||
manage_ng_words: (1 << 30),
|
||||
}.freeze
|
||||
|
||||
|
@ -63,6 +64,7 @@ class UserRole < ApplicationRecord
|
|||
manage_taxonomies
|
||||
manage_invites
|
||||
manage_ng_words
|
||||
manage_sensitive_words
|
||||
).freeze,
|
||||
|
||||
administration: %w(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue