From 1bac79b9b44ff92e8bb27f1762ef328005bd392c Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Thu, 6 Dec 2018 07:56:06 -0800 Subject: [PATCH] Fix panic with customurlschemes (#9968) --- app/diagnostics.go | 2 +- model/config.go | 8 ++++---- model/config_test.go | 2 +- utils/config.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/diagnostics.go b/app/diagnostics.go index 53d656f3c3..0568f87396 100644 --- a/app/diagnostics.go +++ b/app/diagnostics.go @@ -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{}{ diff --git a/model/config.go b/model/config.go index c7ce669ee1..9632199db1 100644 --- a/model/config.go +++ b/model/config.go @@ -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", diff --git a/model/config_test.go b/model/config_test.go index 79b6e4389c..8d1e93ecbc 100644 --- a/model/config_test.go +++ b/model/config_test.go @@ -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) diff --git a/utils/config.go b/utils/config.go index 4becfb3843..28ddef8038 100644 --- a/utils/config.go +++ b/utils/config.go @@ -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)