diff --git a/store/sqlstore/session_store.go b/store/sqlstore/session_store.go index 2efb1f2d6a..567701ebcd 100644 --- a/store/sqlstore/session_store.go +++ b/store/sqlstore/session_store.go @@ -126,13 +126,13 @@ func (me SqlSessionStore) GetSessions(userId string) ([]*model.Session, *model.A func (me SqlSessionStore) GetSessionsWithActiveDeviceIds(userId string) ([]*model.Session, *model.AppError) { query := - `SELECT * - FROM - Sessions - WHERE - UserId = :UserId AND - ExpiresAt != 0 AND - :ExpiresAt <= ExpiresAt AND + `SELECT * + FROM + Sessions + WHERE + UserId = :UserId AND + ExpiresAt != 0 AND + :ExpiresAt <= ExpiresAt AND DeviceId != ''` var sessions []*model.Session @@ -153,13 +153,12 @@ func (me SqlSessionStore) Remove(sessionIdOrToken string) store.StoreChannel { }) } -func (me SqlSessionStore) RemoveAllSessions() store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - _, err := me.GetMaster().Exec("DELETE FROM Sessions") - if err != nil { - result.Err = model.NewAppError("SqlSessionStore.RemoveAllSessions", "store.sql_session.remove_all_sessions_for_team.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) +func (me SqlSessionStore) RemoveAllSessions() *model.AppError { + _, err := me.GetMaster().Exec("DELETE FROM Sessions") + if err != nil { + return model.NewAppError("SqlSessionStore.RemoveAllSessions", "store.sql_session.remove_all_sessions_for_team.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return nil } func (me SqlSessionStore) PermanentDeleteSessionsByUser(userId string) *model.AppError { @@ -203,7 +202,7 @@ func (me SqlSessionStore) UpdateDeviceId(id string, deviceId string, expiresAt i func (me SqlSessionStore) AnalyticsSessionCount() (int64, *model.AppError) { query := - `SELECT + `SELECT COUNT(*) FROM Sessions diff --git a/store/store.go b/store/store.go index 6d1ed83539..d51d349377 100644 --- a/store/store.go +++ b/store/store.go @@ -317,7 +317,7 @@ type SessionStore interface { GetSessions(userId string) ([]*model.Session, *model.AppError) GetSessionsWithActiveDeviceIds(userId string) ([]*model.Session, *model.AppError) Remove(sessionIdOrToken string) StoreChannel - RemoveAllSessions() StoreChannel + RemoveAllSessions() *model.AppError PermanentDeleteSessionsByUser(teamId string) *model.AppError UpdateLastActivityAt(sessionId string, time int64) StoreChannel UpdateRoles(userId string, roles string) StoreChannel diff --git a/store/storetest/mocks/SessionStore.go b/store/storetest/mocks/SessionStore.go index b4e89ba026..b6d2c56e67 100644 --- a/store/storetest/mocks/SessionStore.go +++ b/store/storetest/mocks/SessionStore.go @@ -149,15 +149,15 @@ func (_m *SessionStore) Remove(sessionIdOrToken string) store.StoreChannel { } // RemoveAllSessions provides a mock function with given fields: -func (_m *SessionStore) RemoveAllSessions() store.StoreChannel { +func (_m *SessionStore) RemoveAllSessions() *model.AppError { ret := _m.Called() - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func() store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func() *model.AppError); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } diff --git a/store/storetest/session_store.go b/store/storetest/session_store.go index 98fffd17d3..3fd8265ea3 100644 --- a/store/storetest/session_store.go +++ b/store/storetest/session_store.go @@ -146,7 +146,8 @@ func testSessionRemoveAll(t *testing.T, ss store.Store) { } } - store.Must(ss.Session().RemoveAllSessions()) + removeErr := ss.Session().RemoveAllSessions() + require.Nil(t, removeErr) if _, err := ss.Session().Get(s1.Id); err == nil { t.Fatal("should have been removed")