mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/base_site_config.git
synced 2026-03-08 01:17:41 -03:00
Refatora hook_install para carregar configs LDAP a partir dos YAMLs
Substitui a definição manual de valores no código PHP pela leitura dos arquivos config/optional/ via FileStorage. Adiciona os YAMLs faltantes (authorization.settings, ldap_servers.settings, ldap_authentication.settings) e atualiza ldap_user.settings com os prov_module corretos. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,130 +13,20 @@
|
||||
* de conflito ao importar via config/install.
|
||||
*/
|
||||
function base_site_config_install() {
|
||||
$config_factory = \Drupal::configFactory();
|
||||
$module_path = \Drupal::service('extension.list.module')->getPath('base_site_config');
|
||||
$source = new \Drupal\Core\Config\FileStorage($module_path . '/config/optional');
|
||||
|
||||
// authorization.settings
|
||||
$config_factory->getEditable('authorization.settings')
|
||||
->set('authorization_message', TRUE)
|
||||
->save();
|
||||
$configs = [
|
||||
'authorization.settings',
|
||||
'ldap_servers.settings',
|
||||
'ldap_authentication.settings',
|
||||
'ldap_user.settings',
|
||||
];
|
||||
|
||||
// ldap_servers.settings
|
||||
$config_factory->getEditable('ldap_servers.settings')
|
||||
->set('watchdog_detail', TRUE)
|
||||
->save();
|
||||
|
||||
// ldap_authentication.settings
|
||||
$config_factory->getEditable('ldap_authentication.settings')
|
||||
->set('sids', [
|
||||
'ads1_ime_unicamp_br' => 'ads1_ime_unicamp_br',
|
||||
'ldap_ime_unicamp_br' => '0',
|
||||
])
|
||||
->set('authenticationMode', 'mixed')
|
||||
->set('loginUIUsernameTxt', '')
|
||||
->set('loginUIPasswordTxt', '')
|
||||
->set('ldapUserHelpLinkUrl', '')
|
||||
->set('ldapUserHelpLinkText', '')
|
||||
->set('emailOption', 'disable')
|
||||
->set('emailUpdate', 'update_notify')
|
||||
->set('emailTemplateHandling', 'none')
|
||||
->set('emailTemplate', '@username@example.com')
|
||||
->set('emailTemplateUsageResolveConflict', FALSE)
|
||||
->set('emailTemplateUsageNeverUpdate', FALSE)
|
||||
->set('emailTemplateUsagePromptUser', FALSE)
|
||||
->set('emailTemplateUsageRedirectOnLogin', FALSE)
|
||||
->set('emailTemplateUsagePromptRegex', '.*@example\.com')
|
||||
->set('passwordOption', 'hide')
|
||||
->set('allowOnlyIfTextInDn', [])
|
||||
->set('excludeIfTextInDn', [])
|
||||
->set('excludeIfNoAuthorizations', FALSE)
|
||||
->set('skipAdministrators', TRUE)
|
||||
->save();
|
||||
|
||||
// ldap_user.settings
|
||||
$config_factory->getEditable('ldap_user.settings')
|
||||
->set('drupalAcctProvisionServer', 'ldap_ime_unicamp_br')
|
||||
->set('ldapEntryProvisionServer', 'ldap_ime_unicamp_br')
|
||||
->set('drupalAcctProvisionTriggers', ['drupal_on_update_create'])
|
||||
->set('ldapEntryProvisionTriggers', [])
|
||||
->set('orphanedIncludeDisabledUsers', TRUE)
|
||||
->set('orphanedDrupalAcctBehavior', 'user_cancel_delete')
|
||||
->set('orphanedDrupalAcctReportingInbox', '')
|
||||
->set('orphanedCheckQty', 100)
|
||||
->set('orphanedAccountCheckInterval', 'always')
|
||||
->set('userConflictResolve', 'resolve')
|
||||
->set('manualAccountConflict', 'conflict_associate')
|
||||
->set('acctCreation', 'ldap_behavior')
|
||||
->set('disableAdminPasswordField', FALSE)
|
||||
->set('userUpdateCronQuery', 'people_sync')
|
||||
->set('userUpdateCronInterval', 'always')
|
||||
->set('userUpdateOnly', FALSE)
|
||||
->set('ldapUserSyncMappings', [
|
||||
'drupal' => [
|
||||
'field-preferred_langcode' => [
|
||||
'ldap_attr' => '[preferredLanguage]',
|
||||
'user_attr' => '[field.preferred_langcode]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'ldap_user',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
'field-field_user_category' => [
|
||||
'ldap_attr' => '[employeeType]',
|
||||
'user_attr' => '[field.field_user_category]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'ldap_departments_sync',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
'field-field_user_dept_code' => [
|
||||
'ldap_attr' => '[departmentNumber]',
|
||||
'user_attr' => '[field.field_user_dept_code]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'ldap_departments_sync',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
'field-field_user_id_lattes' => [
|
||||
'ldap_attr' => '[lattesId]',
|
||||
'user_attr' => '[field.field_user_id_lattes]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'site_users',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
'field-field_user_name' => [
|
||||
'ldap_attr' => '[displayName]',
|
||||
'user_attr' => '[field.field_user_name]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'site_users',
|
||||
'prov_events' => ['create_drupal_user'],
|
||||
],
|
||||
'field-field_user_work_phone' => [
|
||||
'ldap_attr' => '[telephoneNumber]',
|
||||
'user_attr' => '[field.field_user_work_phone]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'ldap_departments_sync',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
'field-field_user_orcid' => [
|
||||
'ldap_attr' => '[orcID]',
|
||||
'user_attr' => '[field.field_user_orcid]',
|
||||
'convert' => FALSE,
|
||||
'user_tokens' => '',
|
||||
'config_module' => 'ldap_user',
|
||||
'prov_module' => 'site_users',
|
||||
'prov_events' => ['create_drupal_user', 'sync_to_drupal_user'],
|
||||
],
|
||||
],
|
||||
'ldap' => [],
|
||||
])
|
||||
->save();
|
||||
foreach ($configs as $config_name) {
|
||||
$data = $source->read($config_name);
|
||||
if ($data !== FALSE) {
|
||||
\Drupal::configFactory()->getEditable($config_name)->setData($data)->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
config/optional/authorization.settings.yml
Normal file
1
config/optional/authorization.settings.yml
Normal file
@@ -0,0 +1 @@
|
||||
authorization_message: true
|
||||
23
config/optional/ldap_authentication.settings.yml
Normal file
23
config/optional/ldap_authentication.settings.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
langcode: en
|
||||
sids:
|
||||
ads1_ime_unicamp_br: ads1_ime_unicamp_br
|
||||
ldap_ime_unicamp_br: '0'
|
||||
authenticationMode: mixed
|
||||
loginUIUsernameTxt: ''
|
||||
loginUIPasswordTxt: ''
|
||||
ldapUserHelpLinkUrl: ''
|
||||
ldapUserHelpLinkText: ''
|
||||
emailOption: disable
|
||||
emailUpdate: update_notify
|
||||
emailTemplateHandling: none
|
||||
emailTemplate: '@username@example.com'
|
||||
emailTemplateUsageResolveConflict: false
|
||||
emailTemplateUsageNeverUpdate: false
|
||||
emailTemplateUsagePromptUser: false
|
||||
emailTemplateUsageRedirectOnLogin: false
|
||||
emailTemplateUsagePromptRegex: '.*@example\.com'
|
||||
passwordOption: hide
|
||||
allowOnlyIfTextInDn: { }
|
||||
excludeIfTextInDn: { }
|
||||
excludeIfNoAuthorizations: false
|
||||
skipAdministrators: true
|
||||
1
config/optional/ldap_servers.settings.yml
Normal file
1
config/optional/ldap_servers.settings.yml
Normal file
@@ -0,0 +1 @@
|
||||
watchdog_detail: true
|
||||
99
config/optional/ldap_user.settings.yml
Normal file
99
config/optional/ldap_user.settings.yml
Normal file
@@ -0,0 +1,99 @@
|
||||
drupalAcctProvisionServer: ldap_ime_unicamp_br
|
||||
ldapEntryProvisionServer: ldap_ime_unicamp_br
|
||||
drupalAcctProvisionTriggers:
|
||||
- drupal_on_update_create
|
||||
ldapEntryProvisionTriggers: { }
|
||||
orphanedIncludeDisabledUsers: true
|
||||
orphanedDrupalAcctBehavior: user_cancel_delete
|
||||
orphanedDrupalAcctReportingInbox: ''
|
||||
orphanedCheckQty: 100
|
||||
orphanedAccountCheckInterval: always
|
||||
userConflictResolve: resolve
|
||||
manualAccountConflict: conflict_associate
|
||||
acctCreation: ldap_behavior
|
||||
disableAdminPasswordField: false
|
||||
userUpdateCronQuery: people_sync
|
||||
userUpdateCronInterval: always
|
||||
userUpdateOnly: false
|
||||
ldapUserSyncMappings:
|
||||
drupal:
|
||||
field-preferred_langcode:
|
||||
ldap_attr: '[preferredLanguage]'
|
||||
user_attr: '[field.preferred_langcode]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: ldap_user
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_user_category:
|
||||
ldap_attr: '[employeeType]'
|
||||
user_attr: '[field.field_user_category]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: ldap_departments_sync
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_user_dept_code:
|
||||
ldap_attr: '[departmentNumber]'
|
||||
user_attr: '[field.field_user_dept_code]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: ldap_departments_sync
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_user_id_lattes:
|
||||
ldap_attr: '[lattesId]'
|
||||
user_attr: '[field.field_user_id_lattes]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: site_users
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_user_name:
|
||||
ldap_attr: '[displayName]'
|
||||
user_attr: '[field.field_user_name]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: site_users
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
field-field_user_orcid:
|
||||
ldap_attr: '[orcID]'
|
||||
user_attr: '[field.field_user_orcid]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: site_users
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_user_work_phone:
|
||||
ldap_attr: '[telephoneNumber]'
|
||||
user_attr: '[field.field_user_work_phone]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: ldap_departments_sync
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
field-field_person_id:
|
||||
ldap_attr: '[employeeNumber]'
|
||||
user_attr: '[field.field_person_id]'
|
||||
convert: false
|
||||
user_tokens: ''
|
||||
config_module: ldap_user
|
||||
prov_module: site_users
|
||||
prov_events:
|
||||
- create_drupal_user
|
||||
- sync_to_drupal_user
|
||||
ldap: { }
|
||||
Reference in New Issue
Block a user