discourse/app/models/trust_level_setting.rb
Gerhard Schlager 41ee5b7c86
FIX: Don't store translated trust level names in anonymous cache (#13224)
Refactors `TrustLevel` and moves translations from server to client

Additional changes:
  * "staff" and "admin" wasn't translatable in site settings
  * it replaces a concatenated string with a translation
  * uses translation for trust levels in users_by_trust_level report
  * adds a DB migration to rename keys of translation overrides affected by this commit
2021-06-01 22:11:48 +02:00

31 lines
590 B
Ruby

# frozen_string_literal: true
class TrustLevelSetting < EnumSiteSetting
def self.valid_value?(val)
val.to_i.to_s == val.to_s &&
valid_values.any? { |v| v == val.to_i }
end
def self.values
valid_values.map do |value|
{ name: translation(value), value: value }
end
end
def self.valid_values
TrustLevel.valid_range.to_a
end
def self.translation(value)
I18n.t(
"js.trust_levels.detailed_name",
level: value,
name: TrustLevel.name(value)
)
end
private_class_method :valid_values
private_class_method :translation
end