diff options
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_user_store.go | 6 | ||||
-rw-r--r-- | store/sql_user_store_test.go | 2 | ||||
-rw-r--r-- | store/store.go | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/store/sql_user_store.go b/store/sql_user_store.go index 3fddfb77d..286b6551a 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -275,7 +275,7 @@ func (us SqlUserStore) UpdateFailedPasswordAttempts(userId string, attempts int) return storeChannel } -func (us SqlUserStore) UpdateAuthData(userId string, service string, authData *string, email string) StoreChannel { +func (us SqlUserStore) UpdateAuthData(userId string, service string, authData *string, email string, resetMfa bool) StoreChannel { storeChannel := make(StoreChannel, 1) @@ -301,6 +301,10 @@ func (us SqlUserStore) UpdateAuthData(userId string, service string, authData *s query += ", Email = :Email" } + if resetMfa { + query += ", MfaActive = false, MfaSecret = ''" + } + query += " WHERE Id = :UserId" if _, err := us.GetMaster().Exec(query, map[string]interface{}{"LastPasswordUpdate": updateAt, "UpdateAt": updateAt, "UserId": userId, "AuthService": service, "AuthData": authData, "Email": email}); err != nil { diff --git a/store/sql_user_store_test.go b/store/sql_user_store_test.go index acd87a036..56d9c0a6a 100644 --- a/store/sql_user_store_test.go +++ b/store/sql_user_store_test.go @@ -756,7 +756,7 @@ func TestUserStoreUpdateAuthData(t *testing.T) { service := "someservice" authData := model.NewId() - if err := (<-store.User().UpdateAuthData(u1.Id, service, &authData, "")).Err; err != nil { + if err := (<-store.User().UpdateAuthData(u1.Id, service, &authData, "", true)).Err; err != nil { t.Fatal(err) } diff --git a/store/store.go b/store/store.go index 0f9b20ed8..ffc325eea 100644 --- a/store/store.go +++ b/store/store.go @@ -143,7 +143,7 @@ type UserStore interface { UpdateLastPictureUpdate(userId string) StoreChannel UpdateUpdateAt(userId string) StoreChannel UpdatePassword(userId, newPassword string) StoreChannel - UpdateAuthData(userId string, service string, authData *string, email string) StoreChannel + UpdateAuthData(userId string, service string, authData *string, email string, resetMfa bool) StoreChannel UpdateMfaSecret(userId, secret string) StoreChannel UpdateMfaActive(userId string, active bool) StoreChannel Get(id string) StoreChannel |