summaryrefslogtreecommitdiffstats
path: root/model/user.go
diff options
context:
space:
mode:
authorChris Duarte <csduarte@users.noreply.github.com>2018-03-22 06:53:43 -0700
committerJoram Wilander <jwawilander@gmail.com>2018-03-22 09:53:43 -0400
commit74e703f58daff2aded07a969410f988cff9ada9b (patch)
tree354150b3a53f00edea40d6488c4a6f0bacfde107 /model/user.go
parent9d701c704416a1d8648dd2818a8a15c4da99b424 (diff)
downloadchat-74e703f58daff2aded07a969410f988cff9ada9b.tar.gz
chat-74e703f58daff2aded07a969410f988cff9ada9b.tar.bz2
chat-74e703f58daff2aded07a969410f988cff9ada9b.zip
Timezone feature (#8185)
* Add supported timezones into config Remove Timezone list creation in favor of timezone from configs Add Timezone field to Users table Clean up format of SupportedTimezones in config * Remove unwanted change * Add test for updating user timezone * Add empty map[string]string if Timezone is null * Add EnableTimezoneSelection config * Revert back to map[string]string for ClientConfig * Refactor SupportedTimezones into timezones.json * Include timezones.json in TestConfigFlag * Add timezone api endpoint * Bump varchar size to 256 and setMaxSize in user_store * Refactor LoadConfig to LoadConfig and LoadTimezoneConfig * Remove unnecessary argument in LoadConfig, mail_test * Add test for timezone endpoint * Add license header * Refactor timezones endpoint to system.go * Add system base route to timezone endpoint * db timezone upgrade in db v4.9 * Avoid saving SupportedTimezones to config.json * Add timezonePath support in config * Remove EnableTimezoneSelection from config * Use return statement without return parameter * Refactor test for SupportedTimezones * Check for supportedTimezone != nil instead of using len * Decouple SupportedTimezones out of Config * Fix failing test * Add LastTeamIconUpdate back in upgrade.go * Write timezone config in config_flag_test * Add code fallback for default timezone support
Diffstat (limited to 'model/user.go')
-rw-r--r--model/user.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/model/user.go b/model/user.go
index f64275c83..0f215b0e7 100644
--- a/model/user.go
+++ b/model/user.go
@@ -71,6 +71,7 @@ type User struct {
LastPictureUpdate int64 `json:"last_picture_update,omitempty"`
FailedAttempts int `json:"failed_attempts,omitempty"`
Locale string `json:"locale"`
+ Timezone StringMap `json:"timezone"`
MfaActive bool `json:"mfa_active,omitempty"`
MfaSecret string `json:"mfa_secret,omitempty"`
LastActivityAt int64 `db:"-" json:"last_activity_at,omitempty"`
@@ -86,6 +87,7 @@ type UserPatch struct {
Props StringMap `json:"props,omitempty"`
NotifyProps StringMap `json:"notify_props,omitempty"`
Locale *string `json:"locale"`
+ Timezone StringMap `json:"timezone"`
}
type UserAuth struct {
@@ -208,6 +210,10 @@ func (u *User) PreSave() {
u.SetDefaultNotifications()
}
+ if u.Timezone == nil {
+ u.Props = make(map[string]string)
+ }
+
if len(u.Password) > 0 {
u.Password = HashPassword(u.Password)
}
@@ -302,6 +308,10 @@ func (u *User) Patch(patch *UserPatch) {
if patch.Locale != nil {
u.Locale = *patch.Locale
}
+
+ if patch.Timezone != nil {
+ u.Timezone = patch.Timezone
+ }
}
// ToJson convert a User to a json string