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
Этот коммит содержится в:
FurmanovD
2018-09-17 13:46:06 +03:00
коммит произвёл George Goldberg
родитель 35c148d255
Коммит 517faccc33
7 изменённых файлов: 113 добавлений и 14 удалений

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

@@ -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