diff options
author | nickago <ngonella@calpoly.edu> | 2015-08-20 14:29:40 -0700 |
---|---|---|
committer | nickago <ngonella@calpoly.edu> | 2015-08-20 14:29:40 -0700 |
commit | 8e8cc302e6c863ef7d3cdedb94e1cb0d6af772ec (patch) | |
tree | eda757b5cd5c588b550e713b63e912098bc8582b /store | |
parent | 7d5d6ae5b09621f12947de7c28945a844db1ff85 (diff) | |
download | chat-8e8cc302e6c863ef7d3cdedb94e1cb0d6af772ec.tar.gz chat-8e8cc302e6c863ef7d3cdedb94e1cb0d6af772ec.tar.bz2 chat-8e8cc302e6c863ef7d3cdedb94e1cb0d6af772ec.zip |
Added updating of username based mentions on username change
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_user_store.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/store/sql_user_store.go b/store/sql_user_store.go index cd25b488b..4b1189c2e 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -5,6 +5,7 @@ package store import ( "fmt" + "strings" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" ) @@ -163,6 +164,17 @@ func (us SqlUserStore) Update(user *model.User, allowActiveUpdate bool) StoreCha user.EmailVerified = false } + if user.Username != oldUser.Username { + nonUsernameKeys := []string{} + splitKeys := strings.Split(user.NotifyProps["mention_keys"], ",") + for _, key := range splitKeys { + if key != oldUser.Username && key != "@" + oldUser.Username { + nonUsernameKeys = append(nonUsernameKeys, key) + } + } + user.NotifyProps["mention_keys"] = strings.Join(nonUsernameKeys, ",") + user.Username + ",@" + user.Username + } + if count, err := us.GetMaster().Update(user); err != nil { if IsUniqueConstraintError(err.Error(), "Email", "users_email_teamid_key") { result.Err = model.NewAppError("SqlUserStore.Update", "This email is already taken. Please choose another", "user_id="+user.Id+", "+err.Error()) |