Changeset View
Changeset View
Standalone View
Standalone View
src/app/Backends/LDAP.php
Show First 20 Lines • Show All 707 Lines • ▼ Show 20 Lines | private static function setGroupAttributes($ldap, Group $group, &$entry) | ||||
$domain = $group->domain(); | $domain = $group->domain(); | ||||
$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) { | ||||
$member = strtolower($member); | |||||
// filter out duplicate members | |||||
if (in_array($member, $validMembers)) { | |||||
continue; | |||||
} | |||||
list($local, $domainName) = explode('@', $member); | list($local, $domainName) = explode('@', $member); | ||||
$memberDN = "uid={$member},ou=People,{$domainBaseDN}"; | $memberDN = "uid={$member},ou=People,{$domainBaseDN}"; | ||||
// 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) { | ||||
if (!$ldap->get_entry($memberDN)) { | if (!$ldap->get_entry($memberDN)) { | ||||
continue; | continue; | ||||
Show All 18 Lines | private static function setGroupAttributes($ldap, Group $group, &$entry) | ||||
} | } | ||||
$entry['uniquemember'][] = $memberDN; | $entry['uniquemember'][] = $memberDN; | ||||
$validMembers[] = $member; | $validMembers[] = $member; | ||||
} | } | ||||
// Update members in sql (some might have been removed), | // Update members in sql (some might have been removed), | ||||
// skip model events to not invoke another update job | // skip model events to not invoke another update job | ||||
sort($validMembers); | |||||
$group->members = $validMembers; | $group->members = $validMembers; | ||||
Group::withoutEvents(function () use ($group) { | Group::withoutEvents(function () use ($group) { | ||||
$group->save(); | $group->save(); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Set common user attributes | * Set common user attributes | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 226 Lines • Show Last 20 Lines |