1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-05 23:53:21 +00:00

Don't check user group filter for deleted users

This commit is contained in:
Chad Scharf
2021-03-05 15:49:57 -05:00
parent 7096fc830b
commit 2ab37b45cf

View File

@@ -90,7 +90,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
continue; continue;
} }
const entry = this.buildUser(user); const entry = this.buildUser(user);
if (await this.filterOutUserResult(setFilter, entry)) { if (await this.filterOutUserResult(setFilter, entry, true)) {
continue; continue;
} }
@@ -147,7 +147,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
if (!entry.disabled && !entry.deleted) { if (!entry.disabled && !entry.deleted) {
continue; continue;
} }
if (await this.filterOutUserResult(setFilter, entry)) { if (await this.filterOutUserResult(setFilter, entry, false)) {
continue; continue;
} }
@@ -257,7 +257,8 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
return [userSetType, set]; return [userSetType, set];
} }
private async filterOutUserResult(setFilter: [UserSetType, Set<string>], user: UserEntry): Promise<boolean> { private async filterOutUserResult(setFilter: [UserSetType, Set<string>], user: UserEntry,
checkGroupsFilter: boolean): Promise<boolean> {
if (setFilter == null) { if (setFilter == null) {
return false; return false;
} }
@@ -273,6 +274,10 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
return this.filterOutResult([userSetTypeExclude, setFilter[1]], user.email); return this.filterOutResult([userSetTypeExclude, setFilter[1]], user.email);
} }
// We need to *not* call the /checkMemberGroups method for deleted users, it will always fail
if (!checkGroupsFilter) {
return false;
}
const memberGroups = await this.client.api(`/users/${user.externalId}/checkMemberGroups`).post({ const memberGroups = await this.client.api(`/users/${user.externalId}/checkMemberGroups`).post({
groupIds: Array.from(setFilter[1]), groupIds: Array.from(setFilter[1]),
}); });