From 39d0fe5124f5c44cad347c9af35e6dcc34d62eef Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 19 May 2017 10:05:03 -0400 Subject: [PATCH] document filter syntax --- src/Core/Models/SyncConfiguration.cs | 30 +++++++++++++++++++++ src/Core/Services/GSuiteDirectoryService.cs | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/Core/Models/SyncConfiguration.cs b/src/Core/Models/SyncConfiguration.cs index f95544ec..5a994734 100644 --- a/src/Core/Models/SyncConfiguration.cs +++ b/src/Core/Models/SyncConfiguration.cs @@ -32,8 +32,38 @@ namespace Bit.Core.Models } } + /* + * Depending on what server type you are using, filters are be one of the following: + * + * 1. ActiveDirectory or Other + * - LDAP query/filter syntax + * - Read more at: http://bit.ly/2qyLpzW + * - ex. "(&(givenName=John)(|(l=Dallas)(l=Austin)))" + * + * 2. AzureActiveDirectory + * - OData syntax for a Microsoft Graph query parameter '$filter' + * - Read more at http://bit.ly/2q3FOOD + * - ex. "startswith(displayName,'J')" + * + * 3. GSuite + * - Group Filter + * - Custom filtering syntax that allows you to exclude or include a comma separated list of group names. + * - ex. "include:Group A,Sales People,My Other Group" + * or "exclude:Group C,Developers,Some Other Group" + * - User Filter + * - Custom filtering syntax that allows you to exclude or include a comma separated list of group names. + * - Allows you to concatenate a GSuite Admin API user search query to the end of the filter after delimiting + * the include/exclude filter with a pipe (|). + * - Read more at http://bit.ly/2rlTskX + * - ex. + * or "include:joe@company.com,bill@company.com,tom@company.com" + * or "exclude:john@company.com,bill@company.com|orgName=Engineering orgTitle:Manager" + * or "|orgName=Engineering orgTitle:Manager" + */ + public string GroupFilter { get; set; } public string UserFilter { get; set; } + public bool SyncGroups { get; set; } = true; public bool SyncUsers { get; set; } = true; public int IntervalMinutes { get; set; } = 5; diff --git a/src/Core/Services/GSuiteDirectoryService.cs b/src/Core/Services/GSuiteDirectoryService.cs index d6848c02..baf57b24 100644 --- a/src/Core/Services/GSuiteDirectoryService.cs +++ b/src/Core/Services/GSuiteDirectoryService.cs @@ -233,7 +233,7 @@ namespace Bit.Core.Services } var mainParts = filter.Split('|'); - if(mainParts.Count() < 2) + if(mainParts.Count() < 2 || string.IsNullOrWhiteSpace(mainParts[1])) { return null; } @@ -249,7 +249,7 @@ namespace Bit.Core.Services } var mainParts = filter.Split('|'); - if(mainParts.Count() < 1) + if(mainParts.Count() < 1 || string.IsNullOrWhiteSpace(mainParts[0])) { return null; }