From 8e8cc302e6c863ef7d3cdedb94e1cb0d6af772ec Mon Sep 17 00:00:00 2001 From: nickago Date: Thu, 20 Aug 2015 14:29:40 -0700 Subject: Added updating of username based mentions on username change --- store/sql_user_store.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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()) -- cgit v1.2.3-1-g7c22