From 517faccc332ce48de43e597d1b2d29a3961241e7 Mon Sep 17 00:00:00 2001 From: FurmanovD <39990503+FurmanovD@users.noreply.github.com> Date: Mon, 17 Sep 2018 13:46:06 +0300 Subject: MM-11424 Extend bulk import to support themes across teams(#9305) (#9419) * MM-11424 Extend bulk import to support themes across teams(#9305) Also added: Advanced Settings: +'feature_enabled_markdown_preview' +'formatting' Sidebar Settings: +'show_unread_section' * MM-11424 (PR review) user teams' theme validator test updated * MM-11424 (PR review) added test with valid JSON of invalid theme(by structure) JSON string contains numeric and JSON object fields, not just a correct "string":"string" map --- app/import_validators.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'app/import_validators.go') diff --git a/app/import_validators.go b/app/import_validators.go index 9b19ae45e..b23ecd8f9 100644 --- a/app/import_validators.go +++ b/app/import_validators.go @@ -4,8 +4,10 @@ package app import ( + "encoding/json" "net/http" "os" + "strings" "unicode/utf8" "github.com/mattermost/mattermost-server/model" @@ -267,6 +269,18 @@ func validateUserImportData(data *UserImportData) *model.AppError { } } + if data.UseMarkdownPreview != nil && !model.IsValidTrueOrFalseString(*data.UseMarkdownPreview) { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.advanced_props_feature_markdown_preview.error", nil, "", http.StatusBadRequest) + } + + if data.UseFormatting != nil && !model.IsValidTrueOrFalseString(*data.UseFormatting) { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.advanced_props_formatting.error", nil, "", http.StatusBadRequest) + } + + if data.ShowUnreadSection != nil && !model.IsValidTrueOrFalseString(*data.ShowUnreadSection) { + return model.NewAppError("BulkImport", "app.import.validate_user_import_data.advanced_props_show_unread_section.error", nil, "", http.StatusBadRequest) + } + if data.Teams != nil { return validateUserTeamsImportData(data.Teams) } else { @@ -293,6 +307,13 @@ func validateUserTeamsImportData(data *[]UserTeamImportData) *model.AppError { return err } } + + if tdata.Theme != nil && 0 < len(strings.Trim(*tdata.Theme, " \t\r")) { + var unused map[string]string + if err := json.NewDecoder(strings.NewReader(*tdata.Theme)).Decode(&unused); err != nil { + return model.NewAppError("BulkImport", "app.import.validate_user_teams_import_data.invalid_team_theme.error", nil, err.Error(), http.StatusBadRequest) + } + } } return nil -- cgit v1.2.3-1-g7c22