1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-21 02:33:14 +00:00

reference id vs external id

This commit is contained in:
Kyle Spearrin
2017-05-16 10:56:30 -04:00
parent ca036c55ed
commit e6af13d935
6 changed files with 40 additions and 17 deletions

View File

@@ -673,7 +673,7 @@ namespace Bit.Console
Con.WriteLine("Groups:"); Con.WriteLine("Groups:");
foreach(var group in result.Groups) foreach(var group in result.Groups)
{ {
Con.WriteLine(" {0} - {1}", group.Name, group.Id); Con.WriteLine(" {0} - {1}", group.Name, group.ExternalId);
foreach(var user in group.Users) foreach(var user in group.Users)
{ {
Con.WriteLine(" {0}", user); Con.WriteLine(" {0}", user);
@@ -684,7 +684,7 @@ namespace Bit.Console
Con.WriteLine("Users:"); Con.WriteLine("Users:");
foreach(var user in result.Users) foreach(var user in result.Users)
{ {
Con.WriteLine(" {0}{1}", user.Email ?? user.Id, user.Disabled ? " (disabled)" : null); Con.WriteLine(" {0}{1}", user.Email ?? user.ExternalId, user.Disabled ? " (disabled)" : null);
} }
} }
else else

View File

@@ -8,7 +8,8 @@ namespace Bit.Core.Models
{ {
public abstract class Entry public abstract class Entry
{ {
public string Id { get; set; } public string ReferenceId { get; set; }
public string ExternalId { get; set; }
public DateTime? CreationDate { get; set; } public DateTime? CreationDate { get; set; }
public DateTime? RevisionDate { get; set; } public DateTime? RevisionDate { get; set; }
} }

View File

@@ -19,7 +19,7 @@ namespace Bit.Core.Models
public Group(GroupEntry entry) public Group(GroupEntry entry)
{ {
Name = entry.Name; Name = entry.Name;
ExternalId = entry.Id; ExternalId = entry.ExternalId;
Users = entry.Users; Users = entry.Users;
} }
@@ -34,7 +34,7 @@ namespace Bit.Core.Models
{ {
Email = entry.Email; Email = entry.Email;
Disabled = entry.Disabled; Disabled = entry.Disabled;
ExternalId = entry.Id; ExternalId = entry.ExternalId;
} }
public string ExternalId { get; set; } public string ExternalId { get; set; }

View File

@@ -117,7 +117,8 @@ namespace Bit.Core.Services
{ {
var entry = new GroupEntry var entry = new GroupEntry
{ {
Id = group.Id, ReferenceId = group.Id,
ExternalId = group.Id,
Name = group.DisplayName Name = group.DisplayName
}; };
@@ -204,7 +205,8 @@ namespace Bit.Core.Services
{ {
var entry = new UserEntry var entry = new UserEntry
{ {
Id = user.Id, ReferenceId = user.Id,
ExternalId = user.Id,
Email = user.Mail ?? user.UserPrincipalName, Email = user.Mail ?? user.UserPrincipalName,
Disabled = !user.AccountEnabled.GetValueOrDefault(true) Disabled = !user.AccountEnabled.GetValueOrDefault(true)
}; };

View File

@@ -103,14 +103,24 @@ namespace Bit.Core.Services
{ {
var group = new GroupEntry var group = new GroupEntry
{ {
Id = new Uri(item.Path).Segments?.LastOrDefault() ReferenceId = new Uri(item.Path).Segments?.LastOrDefault()
}; };
if(group.Id == null) if(group.ReferenceId == null)
{ {
continue; continue;
} }
// External Id
if(item.Properties.Contains("objectGUID") && item.Properties["objectGUID"].Count > 0)
{
group.ExternalId = item.Properties["objectGUID"][0].ToString();
}
else
{
group.ExternalId = group.ReferenceId;
}
// Name // Name
if(item.Properties.Contains(SettingsService.Instance.Sync.GroupNameAttribute) && if(item.Properties.Contains(SettingsService.Instance.Sync.GroupNameAttribute) &&
item.Properties[SettingsService.Instance.Sync.GroupNameAttribute].Count > 0) item.Properties[SettingsService.Instance.Sync.GroupNameAttribute].Count > 0)
@@ -193,14 +203,24 @@ namespace Bit.Core.Services
{ {
var user = new UserEntry var user = new UserEntry
{ {
Id = new Uri(item.Path).Segments?.LastOrDefault() ReferenceId = new Uri(item.Path).Segments?.LastOrDefault()
}; };
if(user.Id == null) if(user.ReferenceId == null)
{ {
continue; continue;
} }
// External Id
if(item.Properties.Contains("objectGUID") && item.Properties["objectGUID"].Count > 0)
{
user.ExternalId = item.Properties["objectGUID"][0].ToString();
}
else
{
user.ExternalId = user.ReferenceId;
}
user.Disabled = EntryDisabled(item); user.Disabled = EntryDisabled(item);
// Email // Email

View File

@@ -86,14 +86,14 @@ namespace Bit.Core.Utilities
{ {
foreach(var group in currentGroups) foreach(var group in currentGroups)
{ {
var groupsInThisGroup = allGroups.Where(g => group.Members.Contains(g.Id)).ToList(); var groupsInThisGroup = allGroups.Where(g => group.Members.Contains(g.ReferenceId)).ToList();
var usersInThisGroup = allUsers.Where(u => group.Members.Contains(u.Id)).ToList(); var usersInThisGroup = allUsers.Where(u => group.Members.Contains(u.ReferenceId)).ToList();
foreach(var user in usersInThisGroup) foreach(var user in usersInThisGroup)
{ {
if(!group.Users.Contains(user.Id)) if(!group.Users.Contains(user.ExternalId))
{ {
group.Users.Add(user.Id); group.Users.Add(user.ExternalId);
} }
} }
@@ -101,9 +101,9 @@ namespace Bit.Core.Utilities
{ {
foreach(var user in currentGroupsUsers) foreach(var user in currentGroupsUsers)
{ {
if(!group.Users.Contains(user.Id)) if(!group.Users.Contains(user.ExternalId))
{ {
group.Users.Add(user.Id); group.Users.Add(user.ExternalId);
} }
} }