From 2c20796ea1696d4fbb83dfd5d8a06a8c1fa7899e Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 17 Jul 2018 08:49:15 -0400 Subject: [PATCH] make sure entry ids are unique --- jslib | 2 +- src/services/azure-directory.service.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/jslib b/jslib index a949f499..d677bad7 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit a949f499acb28ddb1ce7197fd35c0d02df957618 +Subproject commit d677bad76a5e2d95691ffcf164e11094b1d01ee4 diff --git a/src/services/azure-directory.service.ts b/src/services/azure-directory.service.ts index 1a38d0a4..e4f3aef6 100644 --- a/src/services/azure-directory.service.ts +++ b/src/services/azure-directory.service.ts @@ -67,6 +67,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc } private async getUsers(force: boolean, saveDelta: boolean): Promise { + const entryIds = new Set(); const entries: UserEntry[] = []; let res: any = null; @@ -90,6 +91,9 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc const users: graphType.User[] = res.value; if (users != null) { for (const user of users) { + if (user.id == null || entryIds.has(user.id)) { + continue; + } const entry = this.buildUser(user); if (this.filterOutResult(setFilter, entry.email)) { continue; @@ -101,6 +105,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc } entries.push(entry); + entryIds.add(user.id); } } @@ -139,6 +144,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc private async getGroups(force: boolean, saveDelta: boolean, setFilter: [boolean, Set]): Promise { + const entryIds = new Set(); const entries: GroupEntry[] = []; const changedGroupIds: string[] = []; const token = await this.configurationService.getGroupDeltaToken(); @@ -166,12 +172,16 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc if (groups != null) { for (const group of groups) { if (getFullResults) { + if (group.id == null || entryIds.has(group.id)) { + continue; + } if (this.filterOutResult(setFilter, group.displayName)) { continue; } const entry = await this.buildGroup(group); entries.push(entry); + entryIds.add(group.id); } else { changedGroupIds.push(group.id); } @@ -202,12 +212,16 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc const allGroups: graphType.Group[] = res.value; if (allGroups != null) { for (const group of allGroups) { + if (group.id == null || entryIds.has(group.id)) { + continue; + } if (this.filterOutResult(setFilter, group.displayName)) { continue; } const entry = await this.buildGroup(group); entries.push(entry); + entryIds.add(group.id); } }