diff options
author | George Goldberg <george@gberg.me> | 2017-02-14 13:38:48 +0000 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-02-14 08:38:48 -0500 |
commit | 6251e836b048f8f5aeeee97f3b2ad216f2a2c4bb (patch) | |
tree | 52187aff064da0b04b3cb82cad938d8bb9ee8f2a /app/import.go | |
parent | 8da1c696d4488890bc1670b8189ddfcd694c0406 (diff) | |
download | chat-6251e836b048f8f5aeeee97f3b2ad216f2a2c4bb.tar.gz chat-6251e836b048f8f5aeeee97f3b2ad216f2a2c4bb.tar.bz2 chat-6251e836b048f8f5aeeee97f3b2ad216f2a2c4bb.zip |
PLT-5398 Bulk loading of user display preferences. (#5382)
Diffstat (limited to 'app/import.go')
-rw-r--r-- | app/import.go | 80 |
1 files changed, 80 insertions, 0 deletions
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) } |