Fix panic with customurlschemes (#9968)

Этот коммит содержится в:
Christopher Speller
2018-12-06 07:56:06 -08:00
коммит произвёл Jesse Hallam
родитель 2eaa9e9b35
Коммит 1bac79b9b4
4 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@@ -551,7 +551,7 @@ func (a *App) trackConfig() {
a.SendDiagnostic(TRACK_CONFIG_DISPLAY, map[string]interface{}{
"experimental_timezone": *cfg.DisplaySettings.ExperimentalTimezone,
"isdefault_custom_url_schemes": len(*cfg.DisplaySettings.CustomUrlSchemes) != 0,
"isdefault_custom_url_schemes": len(cfg.DisplaySettings.CustomUrlSchemes) != 0,
})
a.SendDiagnostic(TRACK_CONFIG_TIMEZONE, map[string]interface{}{

Просмотреть файл

@@ -1897,14 +1897,14 @@ func (s *MessageExportSettings) SetDefaults() {
}
type DisplaySettings struct {
CustomUrlSchemes *[]string
CustomUrlSchemes []string
ExperimentalTimezone *bool
}
func (s *DisplaySettings) SetDefaults() {
if s.CustomUrlSchemes == nil {
customUrlSchemes := []string{}
s.CustomUrlSchemes = &customUrlSchemes
s.CustomUrlSchemes = customUrlSchemes
}
if s.ExperimentalTimezone == nil {
@@ -2495,10 +2495,10 @@ func (mes *MessageExportSettings) isValid(fs FileSettings) *AppError {
}
func (ds *DisplaySettings) isValid() *AppError {
if len(*ds.CustomUrlSchemes) != 0 {
if len(ds.CustomUrlSchemes) != 0 {
validProtocolPattern := regexp.MustCompile(`(?i)^\s*[a-z][a-z0-9-]*\s*$`)
for _, scheme := range *ds.CustomUrlSchemes {
for _, scheme := range ds.CustomUrlSchemes {
if !validProtocolPattern.MatchString(scheme) {
return NewAppError(
"Config.IsValid",

Просмотреть файл

@@ -512,7 +512,7 @@ func TestDisplaySettingsIsValidCustomUrlSchemes(t *testing.T) {
ds := &DisplaySettings{}
ds.SetDefaults()
ds.CustomUrlSchemes = &test.value
ds.CustomUrlSchemes = test.value
if err := ds.isValid(); err != nil && test.valid {
t.Error("Expected CustomUrlSchemes to be valid but got error:", err)

Просмотреть файл

@@ -625,7 +625,7 @@ func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.L
props["PasswordRequireUppercase"] = strconv.FormatBool(*c.PasswordSettings.Uppercase)
props["PasswordRequireNumber"] = strconv.FormatBool(*c.PasswordSettings.Number)
props["PasswordRequireSymbol"] = strconv.FormatBool(*c.PasswordSettings.Symbol)
props["CustomUrlSchemes"] = strings.Join(*c.DisplaySettings.CustomUrlSchemes, ",")
props["CustomUrlSchemes"] = strings.Join(c.DisplaySettings.CustomUrlSchemes, ",")
if license != nil {
props["ExperimentalHideTownSquareinLHS"] = strconv.FormatBool(*c.TeamSettings.ExperimentalHideTownSquareinLHS)