Avoid resetting device id when removed from push proxy (#28269)

* Avoid resetting device id when removed from push proxy

* Fix test and minor improvements

* Add MySQL support
Этот коммит содержится в:
Daniel Espino García
2024-10-03 10:09:25 +02:00
коммит произвёл GitHub
родитель c15c924c49
Коммит da6b40665a
5 изменённых файлов: 27 добавлений и 5 удалений

Просмотреть файл

@@ -146,6 +146,10 @@ func (me SqlSessionStore) GetLRUSessions(c request.CTX, userId string, limit uin
}
func (me SqlSessionStore) GetSessionsWithActiveDeviceIds(userId string) ([]*model.Session, error) {
lastRemovedQuery := `DeviceId != COALESCE(Props->>'last_removed_device_id', '')`
if me.DriverName() == model.DatabaseDriverMysql {
lastRemovedQuery = `DeviceId != COALESCE(Props->>'$.last_removed_device_id', '')`
}
query :=
`SELECT *
FROM
@@ -154,7 +158,8 @@ func (me SqlSessionStore) GetSessionsWithActiveDeviceIds(userId string) ([]*mode
UserId = ? AND
ExpiresAt != 0 AND
? <= ExpiresAt AND
DeviceId != ''`
DeviceId != '' AND
` + lastRemovedQuery
sessions := []*model.Session{}