FEATURE: Add support for Unicode usernames and group names

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
This commit is contained in:
Gerhard Schlager
2019-04-23 12:22:47 +02:00
parent d07605d885
commit a7bc1ecbae
29 changed files with 908 additions and 193 deletions

View File

@ -0,0 +1,13 @@
class ExternalSystemAvatarsValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(value)
@valid = value == "t" || !SiteSetting.unicode_usernames
end
def error_message
I18n.t("site_settings.errors.unicode_usernames_avatars") if !@valid
end
end

View File

@ -0,0 +1,13 @@
class UnicodeUsernameValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(value)
@valid = SiteSetting.external_system_avatars_enabled || value == "f"
end
def error_message
I18n.t("site_settings.errors.unicode_usernames_avatars") if !@valid
end
end

View File

@ -0,0 +1,26 @@
class UnicodeUsernameWhitelistValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(value)
@error_message = nil
return true if value.blank?
if value.match?(/^\/.*\/[imxo]*$/)
@error_message = I18n.t("site_settings.errors.unicode_username_whitelist.leading_trailing_slash")
else
begin
Regexp.new(value)
rescue RegexpError => e
@error_message = I18n.t("site_settings.errors.unicode_username_whitelist.regex_invalid", error: e.message)
end
end
@error_message.blank?
end
def error_message
@error_message
end
end