GH-11465 Migrate User.UpdateMfaSecret to Sync by default (#11496)

* GH-11465 Migrate User.UpdateMfaSecret to Sync by default

* GH-11465 make mfa call async

* GH-11465 return *model.AppError directly
This commit is contained in:
Marc Argent
2019-07-02 21:22:24 +01:00
committed by Joram Wilander
parent eea8df75b0
commit b55b9a3d97
7 changed files with 29 additions and 31 deletions

View File

@@ -70,8 +70,8 @@ func (m *Mfa) GenerateSecret(user *model.User) (string, []byte, *model.AppError)
img := code.PNG()
if result := <-m.Store.User().UpdateMfaSecret(user.Id, secret); result.Err != nil {
return "", nil, model.NewAppError("GenerateQrCode", "mfa.generate_qr_code.save_secret.app_error", nil, result.Err.Error(), http.StatusInternalServerError)
if err := m.Store.User().UpdateMfaSecret(user.Id, secret); err != nil {
return "", nil, model.NewAppError("GenerateQrCode", "mfa.generate_qr_code.save_secret.app_error", nil, err.Error(), http.StatusInternalServerError)
}
return secret, img, nil
@@ -112,14 +112,18 @@ func (m *Mfa) Deactivate(userId string) *model.AppError {
}
achan := m.Store.User().UpdateMfaActive(userId, false)
schan := m.Store.User().UpdateMfaSecret(userId, "")
schan := make(chan *model.AppError, 1)
go func() {
schan <- m.Store.User().UpdateMfaSecret(userId, "")
close(schan)
}()
if result := <-achan; result.Err != nil {
return model.NewAppError("Deactivate", "mfa.deactivate.save_active.app_error", nil, result.Err.Error(), http.StatusInternalServerError)
}
if result := <-schan; result.Err != nil {
return model.NewAppError("Deactivate", "mfa.deactivate.save_secret.app_error", nil, result.Err.Error(), http.StatusInternalServerError)
if err := <-schan; err != nil {
return model.NewAppError("Deactivate", "mfa.deactivate.save_secret.app_error", nil, err.Error(), http.StatusInternalServerError)
}
return nil

View File

@@ -9,7 +9,6 @@ import (
"github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/plugin/plugintest/mock"
"github.com/mattermost/mattermost-server/store"
"github.com/mattermost/mattermost-server/store/storetest/mocks"
"github.com/mattermost/mattermost-server/utils/testutils"
@@ -26,11 +25,8 @@ func TestGenerateSecret(t *testing.T) {
configService := testutils.StaticConfigService{Cfg: &config}
storeMock := mocks.Store{}
userStoreMock := mocks.UserStore{}
userStoreMock.On("UpdateMfaSecret", user.Id, mock.AnythingOfType("string")).Return(func(userId string, secret string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
result.Data = nil
result.Err = nil
})
userStoreMock.On("UpdateMfaSecret", user.Id, mock.AnythingOfType("string")).Return(func(userId string, secret string) *model.AppError {
return nil
})
storeMock.On("User").Return(&userStoreMock)