summaryrefslogtreecommitdiffstats
path: root/app/import_validators.go
diff options
context:
space:
mode:
authorFurmanovD <39990503+FurmanovD@users.noreply.github.com>2018-09-17 13:46:06 +0300
committerGeorge Goldberg <george@gberg.me>2018-09-17 11:46:06 +0100
commit517faccc332ce48de43e597d1b2d29a3961241e7 (patch)
tree38470bb23b9547b8efca92d3341dd023f5f2e999 /app/import_validators.go
parent35c148d2551bbb65a6d469b44876ba78578397c1 (diff)
downloadchat-517faccc332ce48de43e597d1b2d29a3961241e7.tar.gz
chat-517faccc332ce48de43e597d1b2d29a3961241e7.tar.bz2
chat-517faccc332ce48de43e597d1b2d29a3961241e7.zip
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
Diffstat (limited to 'app/import_validators.go')
-rw-r--r--app/import_validators.go21
1 files changed, 21 insertions, 0 deletions
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