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

group and user filters

This commit is contained in:
Kyle Spearrin
2017-05-12 13:22:24 -04:00
parent 0f5fdefb34
commit 44563451f2
3 changed files with 29 additions and 2 deletions

View File

@@ -229,6 +229,16 @@ namespace Bit.Console
{
config.Password = new EncryptedData(parameters["p"]);
}
if(parameters.ContainsKey("gf"))
{
config.GroupFilter = parameters["gf"];
}
if(parameters.ContainsKey("uf"))
{
config.UserFilter = parameters["uf"];
}
}
else
{
@@ -251,6 +261,11 @@ namespace Bit.Console
config.Password = new EncryptedData(passwordInput);
passwordInput = null;
}
Con.Write("Group filter: ");
config.GroupFilter = Con.ReadLine().Trim();
Con.Write("User filter: ");
config.UserFilter = Con.ReadLine().Trim();
}
Con.WriteLine();

View File

@@ -17,6 +17,8 @@ namespace Bit.Core.Models
public EncryptedData Password { get; set; }
[JsonIgnore]
public string ServerPath => $"LDAP://{Address}:{Port}/{Path}";
public string GroupFilter { get; set; }
public string UserFilter { get; set; }
public DirectoryEntry GetDirectoryEntry()
{

View File

@@ -23,7 +23,9 @@ namespace Bit.Core.Utilities
}
var entry = Services.SettingsService.Instance.Server.GetDirectoryEntry();
var searcher = new DirectorySearcher(entry);
var filter = string.IsNullOrWhiteSpace(Services.SettingsService.Instance.Server.GroupFilter) ? null :
Services.SettingsService.Instance.Server.GroupFilter;
var searcher = new DirectorySearcher(entry, filter);
var result = searcher.FindAll();
PrintSearchResults(result);
@@ -43,13 +45,21 @@ namespace Bit.Core.Utilities
throw new ApplicationException("Not authenticated.");
}
var entry = Services.SettingsService.Instance.Server.GetDirectoryEntry();
var filter = string.IsNullOrWhiteSpace(Services.SettingsService.Instance.Server.UserFilter) ? null :
Services.SettingsService.Instance.Server.UserFilter;
var searcher = new DirectorySearcher(entry, filter);
var result = searcher.FindAll();
PrintSearchResults(result);
return Task.FromResult(0);
}
public static async Task SyncAllAsync()
{
await SyncGroupsAsync();
await SyncUsersAsync();
//await SyncUsersAsync();
}
private static void PrintSearchResults(SearchResultCollection result)