View source
<?php
declare (strict_types=1);
function ldap_servers_requirements($phase) : array {
$requirements = [];
if (version_compare(phpversion(), '7.2.0') < 0) {
$requirements['php_ldap_version'] = [
'title' => t('PHP Version for LDAP'),
'description' => t('Your PHP installation is too old for the LDAP module. Please upgrade to at least 7.2.'),
'severity' => REQUIREMENT_ERROR,
'value' => phpversion(),
];
}
if (extension_loaded('ldap')) {
$requirements['ldap_extension_loaded'] = [
'title' => t('PHP LDAP extension'),
'severity' => REQUIREMENT_OK,
'value' => t('Available'),
];
}
else {
$requirements['ldap_extension_loaded'] = [
'title' => t('PHP LDAP extension'),
'severity' => REQUIREMENT_ERROR,
'value' => t('Missing'),
'description' => t('The LDAP extension of PHP is not available. Please consult your distribution to discover how to install it.'),
];
}
if (!class_exists('Symfony\\Component\\Ldap\\Ldap')) {
$requirements['ldap_library_present'] = [
'title' => t('LDAP library'),
'severity' => REQUIREMENT_ERROR,
'value' => t('Missing \\Symfony\\Component\\Ldap\\Ldap'),
'description' => t('You are missing a critical dependency, you should install via Composer which provides it.'),
];
}
return $requirements;
}
function ldap_servers_update_8301() {
$storage = \Drupal::service('entity_type.manager')
->getStorage('ldap_server');
$servers = $storage
->getQuery()
->execute();
foreach ($storage
->loadMultiple($servers) as $server) {
$currentMethod = $server
->get('bind_method');
if ($currentMethod == 1) {
$server
->set('bind_method', 'service_account');
}
elseif ($currentMethod == 2) {
$server
->set('bind_method', 'user');
}
elseif ($currentMethod == 3) {
$server
->set('bind_method', 'anon');
}
elseif ($currentMethod == 4) {
$server
->set('bind_method', 'anon_user');
}
$server
->save();
}
}
function ldap_servers_update_8302() : \Drupal\Core\StringTranslation\TranslatableMarkup {
$config_factory = \Drupal::configFactory();
$config = $config_factory
->getEditable('ldap_servers.settings');
$config
->delete();
return t('HTTPS validation was removed, if you need mixed mode consider another module such as securelogin for this. Mixed mode is strongly discouraged.');
}
function ldap_servers_update_8303() : \Drupal\Core\StringTranslation\TranslatableMarkup {
$storage = \Drupal::service('entity_type.manager')
->getStorage('ldap_server');
$servers = $storage
->getQuery()
->execute();
foreach ($storage
->loadMultiple($servers) as $server) {
$server
->set('timeout', 10);
$server
->save();
}
return t('Server network timeouts are now configurable. Your servers have been set to 10 seconds.');
}
function ldap_servers_update_8304() {
}
function ldap_servers_update_8305() : \Drupal\Core\StringTranslation\TranslatableMarkup {
return t('Escaping of field data now relies solely on Twig auto-escaping. If you have created custom code make sure it takes this into account. See https://www.drupal.org/project/ldap/issues/2969097 for details.');
}
function ldap_servers_update_8401() : \Drupal\Core\StringTranslation\TranslatableMarkup {
return t('Paged search has been removed in favor of more robust data retrieval. Please retest your configuration if you have used paged search.');
}
function ldap_servers_update_8402() {
$config_factory = \Drupal::configFactory();
$config_old = $config_factory
->getEditable('ldap_help.settings');
if ($config_old) {
$config_new = $config_factory
->getEditable('ldap_servers.settings');
$config_new
->set('watchdog_detail', $config_old
->get('watchdog_detail'));
$config_new
->save();
$config_old
->delete();
}
}
function ldap_servers_update_8403() {
$storage = \Drupal::service('entity_type.manager')
->getStorage('ldap_server');
$servers = $storage
->getQuery()
->execute();
foreach ($storage
->loadMultiple($servers) as $server) {
$split = preg_split('/\\r\\n|\\r|\\n/', $server
->get('basedn'));
$server
->set('basedn', $split);
$server
->save();
}
}
function ldap_servers_update_8404() {
$storage = \Drupal::service('entity_type.manager')
->getStorage('ldap_server');
foreach ($storage
->loadMultiple() as $server) {
$server
->set('encryption', 'none');
if ($server
->get('tls')) {
$server
->set('encryption', 'tls');
}
if ($server
->get('port') == 636) {
$server
->set('encryption', 'ssl');
}
$server
->save();
}
}