diff --git a/app/user.go b/app/user.go index cb52e26651..828ddb91d7 100644 --- a/app/user.go +++ b/app/user.go @@ -1046,8 +1046,8 @@ func (a *App) UpdateUserAuth(userId string, userAuth *model.UserAuth) (*model.Us } password := model.HashPassword(userAuth.Password) - if result := <-a.Srv.Store.User().UpdatePassword(userId, password); result.Err != nil { - return nil, result.Err + if err := a.Srv.Store.User().UpdatePassword(userId, password); err != nil { + return nil, err } } else { userAuth.Password = "" @@ -1216,8 +1216,8 @@ func (a *App) UpdatePassword(user *model.User, newPassword string) *model.AppErr hashedPassword := model.HashPassword(newPassword) - if result := <-a.Srv.Store.User().UpdatePassword(user.Id, hashedPassword); result.Err != nil { - return model.NewAppError("UpdatePassword", "api.user.update_password.failed.app_error", nil, result.Err.Error(), http.StatusInternalServerError) + if err := a.Srv.Store.User().UpdatePassword(user.Id, hashedPassword); err != nil { + return model.NewAppError("UpdatePassword", "api.user.update_password.failed.app_error", nil, err.Error(), http.StatusInternalServerError) } return nil diff --git a/cmd/mattermost/commands/user.go b/cmd/mattermost/commands/user.go index 5f838269d7..b044808ab7 100644 --- a/cmd/mattermost/commands/user.go +++ b/cmd/mattermost/commands/user.go @@ -622,8 +622,8 @@ func resetUserPasswordCmdF(command *cobra.Command, args []string) error { } password := args[1] - if result := <-a.Srv.Store.User().UpdatePassword(user.Id, model.HashPassword(password)); result.Err != nil { - return result.Err + if err := a.Srv.Store.User().UpdatePassword(user.Id, model.HashPassword(password)); err != nil { + return err } return nil diff --git a/store/sqlstore/user_store.go b/store/sqlstore/user_store.go index 41767ac2c2..86b8553c6d 100644 --- a/store/sqlstore/user_store.go +++ b/store/sqlstore/user_store.go @@ -240,16 +240,14 @@ func (us SqlUserStore) UpdateUpdateAt(userId string) (int64, *model.AppError) { return curTime, nil } -func (us SqlUserStore) UpdatePassword(userId, hashedPassword string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - updateAt := model.GetMillis() +func (us SqlUserStore) UpdatePassword(userId, hashedPassword string) *model.AppError { + updateAt := model.GetMillis() - if _, err := us.GetMaster().Exec("UPDATE Users SET Password = :Password, LastPasswordUpdate = :LastPasswordUpdate, UpdateAt = :UpdateAt, AuthData = NULL, AuthService = '', FailedAttempts = 0 WHERE Id = :UserId", map[string]interface{}{"Password": hashedPassword, "LastPasswordUpdate": updateAt, "UpdateAt": updateAt, "UserId": userId}); err != nil { - result.Err = model.NewAppError("SqlUserStore.UpdatePassword", "store.sql_user.update_password.app_error", nil, "id="+userId+", "+err.Error(), http.StatusInternalServerError) - } else { - result.Data = userId - } - }) + if _, err := us.GetMaster().Exec("UPDATE Users SET Password = :Password, LastPasswordUpdate = :LastPasswordUpdate, UpdateAt = :UpdateAt, AuthData = NULL, AuthService = '', FailedAttempts = 0 WHERE Id = :UserId", map[string]interface{}{"Password": hashedPassword, "LastPasswordUpdate": updateAt, "UpdateAt": updateAt, "UserId": userId}); err != nil { + return model.NewAppError("SqlUserStore.UpdatePassword", "store.sql_user.update_password.app_error", nil, "id="+userId+", "+err.Error(), http.StatusInternalServerError) + } + + return nil } func (us SqlUserStore) UpdateFailedPasswordAttempts(userId string, attempts int) *model.AppError { diff --git a/store/store.go b/store/store.go index ce62a9c7a6..f56b5d422d 100644 --- a/store/store.go +++ b/store/store.go @@ -253,8 +253,8 @@ type UserStore interface { Update(user *model.User, allowRoleUpdate bool) (*model.UserUpdate, *model.AppError) UpdateLastPictureUpdate(userId string) *model.AppError ResetLastPictureUpdate(userId string) *model.AppError + UpdatePassword(userId, newPassword string) *model.AppError UpdateUpdateAt(userId string) (int64, *model.AppError) - UpdatePassword(userId, newPassword string) StoreChannel UpdateAuthData(userId string, service string, authData *string, email string, resetMfa bool) (string, *model.AppError) UpdateMfaSecret(userId, secret string) *model.AppError UpdateMfaActive(userId string, active bool) StoreChannel diff --git a/store/storetest/mocks/UserStore.go b/store/storetest/mocks/UserStore.go index 09f3a9e90f..8b559378dd 100644 --- a/store/storetest/mocks/UserStore.go +++ b/store/storetest/mocks/UserStore.go @@ -1150,15 +1150,15 @@ func (_m *UserStore) UpdateMfaSecret(userId string, secret string) *model.AppErr } // UpdatePassword provides a mock function with given fields: userId, newPassword -func (_m *UserStore) UpdatePassword(userId string, newPassword string) store.StoreChannel { +func (_m *UserStore) UpdatePassword(userId string, newPassword string) *model.AppError { ret := _m.Called(userId, newPassword) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string, string) *model.AppError); ok { r0 = rf(userId, newPassword) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } diff --git a/store/storetest/user_store.go b/store/storetest/user_store.go index 87b82ce8a8..0eb414b634 100644 --- a/store/storetest/user_store.go +++ b/store/storetest/user_store.go @@ -1800,7 +1800,7 @@ func testUserStoreUpdatePassword(t *testing.T, ss store.Store) { hashedPassword := model.HashPassword("newpwd") - if err := (<-ss.User().UpdatePassword(u1.Id, hashedPassword)).Err; err != nil { + if err := ss.User().UpdatePassword(u1.Id, hashedPassword); err != nil { t.Fatal(err) }