public function LdapUserProcessor::deleteProvisionedLdapEntries in Lightweight Directory Access Protocol (LDAP) 8.3
Delete a provisioned LDAP entry.
Given a Drupal account, delete LDAP entry that was provisioned based on it normally this will be 0 or 1 entry, but the ldap_user_prov_entries field attached to the user entity track each LDAP entry provisioned.
Parameters
\Drupal\user\Entity\User $account: Drupal user account.
Return value
bool FALSE indicates failed or action not enabled in LDAP user configuration.
File
- ldap_user/
src/ Processor/ LdapUserProcessor.php, line 479  
Class
- LdapUserProcessor
 - Processor for LDAP provisioning.
 
Namespace
Drupal\ldap_user\ProcessorCode
public function deleteProvisionedLdapEntries(User $account) {
  // Determine server that is associated with user.
  $result = FALSE;
  $entries = $account
    ->get('ldap_user_prov_entries')
    ->getValue();
  foreach ($entries as $entry) {
    $parts = explode('|', $entry['value']);
    if (count($parts) == 2) {
      list($sid, $dn) = $parts;
      $factory = \Drupal::service('ldap.servers');
      $ldap_server = $factory
        ->getServerById($sid);
      if (is_object($ldap_server) && $dn) {
        /** @var \Drupal\ldap_servers\Entity\Server $ldap_server */
        $result = $ldap_server
          ->deleteLdapEntry($dn);
        $tokens = [
          '%sid' => $sid,
          '%dn' => $dn,
          '%username' => $account
            ->getAccountName(),
          '%uid' => $account
            ->id(),
        ];
        if ($result) {
          \Drupal::logger('ldap_user')
            ->info('LDAP entry on server %sid deleted dn=%dn. username=%username, uid=%uid', $tokens);
        }
        else {
          \Drupal::logger('ldap_user')
            ->error('LDAP entry on server %sid not deleted because error. username=%username, uid=%uid', $tokens);
        }
      }
      else {
        $result = FALSE;
      }
    }
  }
  return $result;
}