You are here

public function LDAPAuthorizationProvider::sanitizeProposals in Lightweight Directory Access Protocol (LDAP) 8.4

Same name and namespace in other branches
  1. 8.3 ldap_authorization/src/Plugin/authorization/Provider/LDAPAuthorizationProvider.php \Drupal\ldap_authorization\Plugin\authorization\Provider\LDAPAuthorizationProvider::sanitizeProposals()

Sanitize proposals.

Parameters

array $proposals: Raw proposals.

Return value

array Processed proposals.

Overrides ProviderInterface::sanitizeProposals

File

ldap_authorization/src/Plugin/authorization/Provider/LDAPAuthorizationProvider.php, line 332

Class

LDAPAuthorizationProvider
The LDAP authorization provider for authorization module.

Namespace

Drupal\ldap_authorization\Plugin\authorization\Provider

Code

public function sanitizeProposals(array $proposals) : array {

  // Configure this provider.

  /** @var \Drupal\authorization\Entity\AuthorizationProfile $profile */
  $profile = $this->configuration['profile'];
  $config = $profile
    ->getProviderConfig();
  foreach ($proposals as $key => $authorization_id) {

    /** @var string $lowercase_key */
    $lowercase_key = \mb_strtolower($key);
    if ($config['filter_and_mappings']['use_first_attr_as_groupid']) {
      $attr_parts = self::splitDnWithAttributes($authorization_id);
      unset($attr_parts['count']);
      if (count($attr_parts) > 0) {
        $first_part = \explode('=', $attr_parts[0]);
        if ($first_part && isset($first_part[1])) {
          $authorization_id = ConversionHelper::unescapeDnValue(trim($first_part[1]));
        }
      }
      $lowercase_key = \mb_strtolower($authorization_id);
    }
    $proposals[$lowercase_key] = $authorization_id;
    if ($key !== $lowercase_key) {
      unset($proposals[$key]);
    }
  }
  return $proposals;
}