1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-14 07:13:25 +00:00

revision date filter. allow clearing config values

This commit is contained in:
Kyle Spearrin
2017-05-13 22:47:22 -04:00
parent e2a443640b
commit ca30ab61aa
7 changed files with 150 additions and 36 deletions

View File

@@ -40,6 +40,8 @@ namespace Bit.Core.Utilities
};
}
var now = DateTime.UtcNow;
List<GroupEntry> groups = null;
if(SettingsService.Instance.Sync.SyncGroups)
{
@@ -58,6 +60,16 @@ namespace Bit.Core.Utilities
var response = await ApiService.Instance.PostImportAsync(request);
if(response.Succeeded)
{
if(SettingsService.Instance.Sync.SyncGroups)
{
SettingsService.Instance.LastGroupSyncDate = now;
}
if(SettingsService.Instance.Sync.SyncUsers)
{
SettingsService.Instance.LastUserSyncDate = now;
}
return new SyncResult
{
Success = true,
@@ -100,6 +112,16 @@ namespace Bit.Core.Utilities
var entry = SettingsService.Instance.Server.GetDirectoryEntry();
var filter = string.IsNullOrWhiteSpace(SettingsService.Instance.Sync.GroupFilter) ? null :
SettingsService.Instance.Sync.GroupFilter;
if(!string.IsNullOrWhiteSpace(SettingsService.Instance.Sync.RevisionDateAttribute) &&
SettingsService.Instance.LastGroupSyncDate.HasValue)
{
filter = string.Format("(&{0}({1}>{2}))",
filter != null ? string.Format("({0})", filter) : string.Empty,
SettingsService.Instance.Sync.RevisionDateAttribute,
SettingsService.Instance.LastGroupSyncDate.Value.ToGeneralizedTimeUTC());
}
var searcher = new DirectorySearcher(entry, filter);
var result = searcher.FindAll();
@@ -180,6 +202,16 @@ namespace Bit.Core.Utilities
var entry = SettingsService.Instance.Server.GetDirectoryEntry();
var filter = string.IsNullOrWhiteSpace(SettingsService.Instance.Sync.UserFilter) ? null :
SettingsService.Instance.Sync.UserFilter;
if(!string.IsNullOrWhiteSpace(SettingsService.Instance.Sync.RevisionDateAttribute) &&
SettingsService.Instance.LastUserSyncDate.HasValue)
{
filter = string.Format("(&{0}({1}>{2}))",
filter != null ? string.Format("({0})", filter) : string.Empty,
SettingsService.Instance.Sync.RevisionDateAttribute,
SettingsService.Instance.LastUserSyncDate.Value.ToGeneralizedTimeUTC());
}
var searcher = new DirectorySearcher(entry, filter);
var result = searcher.FindAll();