From 15c1876687ad237e8422eb51e19492574c2d2fb9 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 1 Jul 2020 16:15:32 -0400 Subject: [PATCH] dont skip disbaled users if not removeDisabled (#50) --- src/services/azure-directory.service.ts | 2 +- src/services/baseDirectory.service.ts | 9 +++++++-- src/services/gsuite-directory.service.ts | 2 +- src/services/okta-directory.service.ts | 2 +- src/services/onelogin-directory.service.ts | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/services/azure-directory.service.ts b/src/services/azure-directory.service.ts index 2991b849..abf1eb0e 100644 --- a/src/services/azure-directory.service.ts +++ b/src/services/azure-directory.service.ts @@ -70,7 +70,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc if (this.syncConfig.groups) { const setFilter = this.createCustomSet(this.syncConfig.groupFilter); groups = await this.getGroups(setFilter); - users = this.filterUsersFromGroupsSet(users, groups, setFilter); + users = this.filterUsersFromGroupsSet(users, groups, setFilter, this.syncConfig); } return [groups, users]; diff --git a/src/services/baseDirectory.service.ts b/src/services/baseDirectory.service.ts index 2c506174..73508e70 100644 --- a/src/services/baseDirectory.service.ts +++ b/src/services/baseDirectory.service.ts @@ -1,3 +1,5 @@ +import { SyncConfiguration } from '../models/syncConfiguration'; + import { GroupEntry } from '../models/groupEntry'; import { UserEntry } from '../models/userEntry'; @@ -66,13 +68,16 @@ export abstract class BaseDirectoryService { } protected filterUsersFromGroupsSet(users: UserEntry[], groups: GroupEntry[], - setFilter: [boolean, Set]): UserEntry[] { + setFilter: [boolean, Set], syncConfig: SyncConfiguration): UserEntry[] { if (setFilter == null || users == null) { return users; } return users.filter((u) => { - if (u.disabled || u.deleted) { + if (u.deleted) { + return true; + } + if (u.disabled && syncConfig.removeDisabled) { return true; } diff --git a/src/services/gsuite-directory.service.ts b/src/services/gsuite-directory.service.ts index 62e82a29..bdbf7519 100644 --- a/src/services/gsuite-directory.service.ts +++ b/src/services/gsuite-directory.service.ts @@ -58,7 +58,7 @@ export class GSuiteDirectoryService extends BaseDirectoryService implements Dire if (this.syncConfig.groups) { const setFilter = this.createCustomSet(this.syncConfig.groupFilter); groups = await this.getGroups(setFilter); - users = this.filterUsersFromGroupsSet(users, groups, setFilter); + users = this.filterUsersFromGroupsSet(users, groups, setFilter, this.syncConfig); } return [groups, users]; diff --git a/src/services/okta-directory.service.ts b/src/services/okta-directory.service.ts index ee35c7a9..c3fde588 100644 --- a/src/services/okta-directory.service.ts +++ b/src/services/okta-directory.service.ts @@ -59,7 +59,7 @@ export class OktaDirectoryService extends BaseDirectoryService implements Direct if (this.syncConfig.groups) { const setFilter = this.createCustomSet(this.syncConfig.groupFilter); groups = await this.getGroups(this.forceGroup(force, users), setFilter); - users = this.filterUsersFromGroupsSet(users, groups, setFilter); + users = this.filterUsersFromGroupsSet(users, groups, setFilter, this.syncConfig); } return [groups, users]; diff --git a/src/services/onelogin-directory.service.ts b/src/services/onelogin-directory.service.ts index 7ead140c..d2426e1d 100644 --- a/src/services/onelogin-directory.service.ts +++ b/src/services/onelogin-directory.service.ts @@ -60,7 +60,7 @@ export class OneLoginDirectoryService extends BaseDirectoryService implements Di if (this.syncConfig.groups) { const setFilter = this.createCustomSet(this.syncConfig.groupFilter); groups = await this.getGroups(this.forceGroup(force, users), setFilter); - users = this.filterUsersFromGroupsSet(users, groups, setFilter); + users = this.filterUsersFromGroupsSet(users, groups, setFilter, this.syncConfig); } return [groups, users];