1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 08:43:33 +00:00

ensure that message is for proper logged in user

This commit is contained in:
Kyle Spearrin
2018-08-28 08:47:06 -04:00
parent 45da8aa9eb
commit a72843af3e
2 changed files with 22 additions and 8 deletions

View File

@@ -26,7 +26,8 @@ export class NotificationResponse {
case NotificationType.SyncCiphers: case NotificationType.SyncCiphers:
case NotificationType.SyncOrgKeys: case NotificationType.SyncOrgKeys:
case NotificationType.SyncSettings: case NotificationType.SyncSettings:
this.payload = new SyncUserNotification(payload); case NotificationType.LogOut:
this.payload = new UserNotification(payload);
break; break;
default: default:
break; break;
@@ -62,7 +63,7 @@ export class SyncFolderNotification {
} }
} }
export class SyncUserNotification { export class UserNotification {
userId: string; userId: string;
date: Date; date: Date;

View File

@@ -107,6 +107,13 @@ export class NotificationsService implements NotificationsServiceAbstraction {
return; return;
} }
const isAuthenticated = await this.userService.isAuthenticated();
const payloadUserId = notification.payload.userId || notification.payload.UserId;
const myUserId = await this.userService.getUserId();
if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {
return;
}
switch (notification.type) { switch (notification.type) {
case NotificationType.SyncCipherCreate: case NotificationType.SyncCipherCreate:
case NotificationType.SyncCipherUpdate: case NotificationType.SyncCipherUpdate:
@@ -128,16 +135,22 @@ export class NotificationsService implements NotificationsServiceAbstraction {
case NotificationType.SyncVault: case NotificationType.SyncVault:
case NotificationType.SyncCiphers: case NotificationType.SyncCiphers:
case NotificationType.SyncSettings: case NotificationType.SyncSettings:
await this.syncService.fullSync(false); if (isAuthenticated) {
await this.syncService.fullSync(false);
}
break; break;
case NotificationType.SyncOrgKeys: case NotificationType.SyncOrgKeys:
await this.apiService.refreshIdentityToken(); if (isAuthenticated) {
await this.syncService.fullSync(true); await this.apiService.refreshIdentityToken();
// Stop so a reconnect can be made await this.syncService.fullSync(true);
await this.signalrConnection.stop(); // Stop so a reconnect can be made
await this.signalrConnection.stop();
}
break; break;
case NotificationType.LogOut: case NotificationType.LogOut:
this.logoutCallback(); if (isAuthenticated) {
this.logoutCallback();
}
break; break;
default: default:
break; break;