From 6251e836b048f8f5aeeee97f3b2ad216f2a2c4bb Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Tue, 14 Feb 2017 13:38:48 +0000 Subject: PLT-5398 Bulk loading of user display preferences. (#5382) --- app/import.go | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'app/import.go') diff --git a/app/import.go b/app/import.go index 599c08f9d..1241048d3 100644 --- a/app/import.go +++ b/app/import.go @@ -57,6 +57,14 @@ type UserImportData struct { Locale *string `json:"locale"` Teams *[]UserTeamImportData `json:"teams"` + + Theme *string `json:"theme"` + SelectedFont *string `json:"display_font"` + UseMilitaryTime *string `json:"military_time"` + NameFormat *string `json:"teammate_name_display"` + CollapsePreviews *string `json:"link_previews"` + MessageDisplay *string `json:"message_display"` + ChannelDisplayMode *string `json:"channel_display_mode"` } type UserTeamImportData struct { @@ -395,6 +403,78 @@ func ImportUser(data *UserImportData, dryRun bool) *model.AppError { } } + // Preferences. + var preferences model.Preferences + + if data.Theme != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_THEME, + Name: "", + Value: *data.Theme, + }) + } + + if data.SelectedFont != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "selected_font", + Value: *data.SelectedFont, + }) + } + + if data.UseMilitaryTime != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "use_military_time", + Value: *data.UseMilitaryTime, + }) + } + + if data.NameFormat != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "name_format", + Value: *data.NameFormat, + }) + } + + if data.CollapsePreviews != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "collapse_previews", + Value: *data.CollapsePreviews, + }) + } + + if data.MessageDisplay != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "message_display", + Value: *data.MessageDisplay, + }) + } + + if data.ChannelDisplayMode != nil { + preferences = append(preferences, model.Preference{ + UserId: user.Id, + Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, + Name: "channel_display_mode", + Value: *data.ChannelDisplayMode, + }) + } + + if len(preferences) > 0 { + if result := <-Srv.Store.Preference().Save(&preferences); result.Err != nil { + return model.NewAppError("BulkImport", "app.import.import_user.save_preferences.error", nil, "", http.StatusInternalServerError) + } + } + return ImportUserTeams(*data.Username, data.Teams) } -- cgit v1.2.3-1-g7c22