Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/poor-apricots-heal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@rocket.chat/meteor': patch
---

Fixes push notifications continuing after logout due to missing token cleanup.
6 changes: 4 additions & 2 deletions apps/meteor/server/services/push/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ export class PushService extends ServiceClassInternal implements IPushService {
if (!('diff' in data) || !data.diff || !('services.resume.loginTokens' in data.diff)) {
return;
}
if (data.diff['services.resume.loginTokens'] === undefined) {

const loginTokens = Array.isArray(data.diff['services.resume.loginTokens']) ? data.diff['services.resume.loginTokens'] : [];

if (data.diff['services.resume.loginTokens'] === undefined || loginTokens.length === 0) {
await PushToken.removeAllByUserId(data.id);
return;
}
const loginTokens = Array.isArray(data.diff['services.resume.loginTokens']) ? data.diff['services.resume.loginTokens'] : [];
const tokens = loginTokens.map(({ hashedToken }: { hashedToken: string }) => hashedToken);
if (tokens.length > 0) {
await PushToken.removeByUserIdExceptTokens(data.id, tokens);
Expand Down
Loading