From cb745475452a9fc8ef3a9fedf6b34af7d05adba9 Mon Sep 17 00:00:00 2001 From: Corey Hulen Date: Fri, 27 May 2016 09:56:26 -0700 Subject: PLT-3063 fix upgrade when user is a team admin (#3127) --- mattermost.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'mattermost.go') diff --git a/mattermost.go b/mattermost.go index 6fe285d58..6073f37f4 100644 --- a/mattermost.go +++ b/mattermost.go @@ -483,6 +483,7 @@ func convertTeamTo30(primaryTeamName string, team *TeamForUpgrade, uniqueEmails for _, user := range users { shouldUpdateUser := false + shouldUpdateRole := false previousRole := user.Roles previousEmail := user.Email previousUsername := user.Username @@ -495,7 +496,7 @@ func convertTeamTo30(primaryTeamName string, team *TeamForUpgrade, uniqueEmails if model.IsInRole(user.Roles, model.ROLE_TEAM_ADMIN) { member.Roles = model.ROLE_TEAM_ADMIN user.Roles = "" - shouldUpdateUser = true + shouldUpdateRole = true } exists := false @@ -609,6 +610,25 @@ func convertTeamTo30(primaryTeamName string, team *TeamForUpgrade, uniqueEmails } } + if shouldUpdateRole { + if _, err := store.GetMaster().Exec(` + UPDATE Users + SET + Roles = '' + WHERE + Id = :Id + `, + map[string]interface{}{ + "Id": user.Id, + }, + ); err != nil { + l4g.Error("Failed to update user role %v details=%v", user.Email, err) + flushLogAndExit(1) + } + + l4g.Info("modified user_id=%v, changed roles from=%v to=%v", user.Id, previousRole, user.Roles) + } + uniqueEmails[user.Email] = true uniqueUsernames[user.Username] = true -- cgit v1.2.3-1-g7c22