Changeset View
Changeset View
Standalone View
Standalone View
src/app/Backends/LDAP.php
Show First 20 Lines • Show All 710 Lines • ▼ Show 20 Lines | private static function setGroupAttributes($ldap, Group $group, &$entry) | ||||
$hostedRootDN = \config('ldap.hosted.root_dn'); | $hostedRootDN = \config('ldap.hosted.root_dn'); | ||||
$domainBaseDN = "ou={$domain->namespace},{$hostedRootDN}"; | $domainBaseDN = "ou={$domain->namespace},{$hostedRootDN}"; | ||||
foreach ($group->members as $member) { | foreach ($group->members as $member) { | ||||
list($local, $domainName) = explode('@', $member); | list($local, $domainName) = explode('@', $member); | ||||
$memberDN = "uid={$member},ou=People,{$domainBaseDN}"; | $memberDN = "uid={$member},ou=People,{$domainBaseDN}"; | ||||
$memberEntry = $ldap->get_entry($memberDN); | |||||
// if the member is in the local domain but doesn't exist, drop it | // if the member is in the local domain but doesn't exist, drop it | ||||
if ($domainName == $domain->namespace) { | if ($domainName == $domain->namespace && !$memberEntry) { | ||||
if (!$ldap->get_entry($memberDN)) { | |||||
continue; | continue; | ||||
} | } | ||||
} | |||||
// add the member if not in the local domain | // add the member if not in the local domain | ||||
if (!$ldap->get_entry($memberDN)) { | if (!$memberEntry) { | ||||
$memberEntry = [ | $memberEntry = [ | ||||
'cn' => $member, | 'cn' => $member, | ||||
'mail' => $member, | 'mail' => $member, | ||||
'objectclass' => [ | 'objectclass' => [ | ||||
'top', | 'top', | ||||
'inetorgperson', | 'inetorgperson', | ||||
'organizationalperson', | 'organizationalperson', | ||||
'person' | 'person' | ||||
▲ Show 20 Lines • Show All 248 Lines • Show Last 20 Lines |