diff --git a/jslib b/jslib index 2f6426de..b0eea9d7 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 2f6426deb470b71838b51c52587929ac64d428bf +Subproject commit b0eea9d7cefdc5453750f49985689fefa1fa53a5 diff --git a/src/services/azure-directory.service.ts b/src/services/azure-directory.service.ts index 53f27c49..b75f7949 100644 --- a/src/services/azure-directory.service.ts +++ b/src/services/azure-directory.service.ts @@ -21,6 +21,13 @@ const NextLink = '@odata.nextLink'; const DeltaLink = '@odata.deltaLink'; const ObjectType = '@odata.type'; +enum UserSetType { + IncludeUser, + ExcludeUser, + IncludeGroup, + ExcludeGroup, +} + export class AzureDirectoryService extends BaseDirectoryService implements DirectoryService { private client: graph.Client; private dirConfig: AzureConfiguration; @@ -162,35 +169,36 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc } private async filterOutUserResult(setFilter: [UserSetType, Set], user: UserEntry): Promise { - if (setFilter != null) { - let userSetTypeExclude = null; - if (setFilter[0] === UserSetType.IncludeUser) { - userSetTypeExclude = false; - } else if (setFilter[0] === UserSetType.ExcludeUser) { - userSetTypeExclude = true; - } - if (userSetTypeExclude != null) { - return this.filterOutResult([userSetTypeExclude, setFilter[1]], user.email); - } else { - try { - let memberGroups = await this.client.api(`/users/${user.externalId}/checkMemberGroups`).post({ - groupIds: Array.from(setFilter[1]) - }); - if (memberGroups.value.length > 0 && setFilter[0] == UserSetType.IncludeGroup) { - return false; - } else if (memberGroups.value.length > 0 && setFilter[0] == UserSetType.ExcludeGroup) { - return true; - } else if (memberGroups.value.length == 0 && setFilter[0] == UserSetType.IncludeGroup) { - return true; - } else if (memberGroups.value.length == 0 && setFilter[0] == UserSetType.ExcludeGroup) { - return false; - } - } catch(ex) { - return false; - } - } + if (setFilter == null) { + return false; } + let userSetTypeExclude = null; + if (setFilter[0] === UserSetType.IncludeUser) { + userSetTypeExclude = false; + } else if (setFilter[0] === UserSetType.ExcludeUser) { + userSetTypeExclude = true; + } + + if (userSetTypeExclude != null) { + return this.filterOutResult([userSetTypeExclude, setFilter[1]], user.email); + } + + try { + const memberGroups = await this.client.api(`/users/${user.externalId}/checkMemberGroups`).post({ + groupIds: Array.from(setFilter[1]), + }); + if (memberGroups.value.length > 0 && setFilter[0] === UserSetType.IncludeGroup) { + return false; + } else if (memberGroups.value.length > 0 && setFilter[0] === UserSetType.ExcludeGroup) { + return true; + } else if (memberGroups.value.length === 0 && setFilter[0] === UserSetType.IncludeGroup) { + return true; + } else if (memberGroups.value.length === 0 && setFilter[0] === UserSetType.ExcludeGroup) { + return false; + } + } catch { } + return false; } @@ -349,10 +357,3 @@ export class AzureDirectoryService extends BaseDirectoryService implements Direc this.accessTokenExpiration = exp; } } - -enum UserSetType { - IncludeUser, - ExcludeUser, - IncludeGroup, - ExcludeGroup -} \ No newline at end of file