Domain Config UI¶
Le module Domain Config UI fournit un moyen simple d'activer des surcharges de configuration par domaine directement depuis les formulaires de configuration existants. Lorsqu'un formulaire de configuration pris en charge est consulté dans un contexte de domaine, les utilisateurs disposant des droits adéquats voient un bouton en ligne permettant d'activer (ou de supprimer) une surcharge de configuration spécifique au domaine pour cet objet de configuration.
Fonctionnement¶
- Lorsqu'un utilisateur disposant des permissions appropriées visite un
formulaire de configuration d'administration sur un nom d'hôte de domaine
(par exemple,
https://one.example.com), le module inspecte le formulaire pour identifier le ou les objets de configuration sous-jacents. - Si la configuration peut être surchargée par domaine, un lien d'action
en ligne apparaît en haut du formulaire :
- Activer la configuration de domaine
- Supprimer la configuration de domaine (une fois celle-ci activée)
- Une fois activée, les modifications soumises via ce formulaire sont enregistrées en tant que surcharges par domaine, sans modifier la configuration globale.
Configurations non autorisées¶
Vous pouvez explicitement empêcher certains objets de configuration d'être surchargés par domaine. Lorsqu'un nom de configuration est interdit, le lien de basculement en ligne est masqué sur le formulaire correspondant.
Où configurer¶
- Interface : Administration > Configuration > Domain > Domain Config UI
(
/admin/config/domain/config-ui) - Clé de configuration :
domain_config_ui.settings: disallowed_configurations
Exemple¶
Pour interdire les surcharges au niveau du domaine pour le formulaire
Informations du site (system.site) et les paramètres de thème
(system.theme), définissez la configuration suivante (YAML), ou via le
formulaire de paramètres :
domain_config_ui.settings:
disallowed_configurations:
- system.site
- system.theme
Avec la configuration ci-dessus, le lien "Activer la configuration de domaine" n'apparaîtra plus sur :
- Informations du site :
/admin/config/system/site-information(system.site) - Pages d'apparence et de paramètres de thème correspondant à
system.theme
Notes¶
- Le module empêche également la surcharge de ses propres paramètres par défaut.
- La vérification est appliquée côté serveur via la fabrique de configuration, et pas seulement masquée dans l'interface.
Issue associée¶
Contrôle programmatique¶
Deux hooks alter permettent un contrôle avancé sur l'affichage du bouton de basculement et sur les objets de configuration éligibles aux surcharges par domaine.
Alter des configurations non autorisées¶
Empêcher les surcharges de domaine pour des noms de configuration spécifiques de manière globale :
/**
* Implements hook_domain_config_ui_disallowed_configurations_alter().
*/
function mymodule_domain_config_ui_disallowed_configurations_alter(array &$disallowed): void {
// Disallow domain overrides for image toolkit settings site-wide.
$disallowed[] = 'system.image';
}
Alter des routes non autorisées¶
Masquer entièrement le bouton de basculement sur des routes spécifiques (même si la configuration sous-jacente serait normalement autorisée) :
/**
* Implements hook_domain_config_ui_disallowed_routes_alter().
*/
function mymodule_domain_config_ui_disallowed_routes_alter(array &$routes): void {
// Do not show the toggle on the account settings page.
$routes[] = 'entity.user.admin_form';
}
Aperçu des permissions¶
Les permissions courantes utilisées par ce module incluent :
use domain config ui— voir et utiliser le bouton de basculement en ligne sur les formulaires autorisésadminister domain config ui— gérer les paramètresset default domain configuration— gérer les valeurs par défaut et spécifiques au domainetranslate domain configuration— gérer les surcharges linguistiques par domaine
Assurez-vous que les utilisateurs opèrent dans un contexte de domaine (c'est-à-dire en visitant le site sur le nom d'hôte d'un domaine) pour que le bouton de basculement soit disponible.
Références de tests¶
Le dépôt inclut des tests fonctionnels et JavaScript qui illustrent le comportement attendu :
DomainConfigUISettingsTest— activation/suppression des surcharges depuis les formulaires courantsDomainConfigUIDisallowedConfigurationsTest— vérifie que l'ajout desystem.siteàdisallowed_configurationsmasque le bouton de basculement sur Informations du siteDomainConfigUIOptionsTestetDomainConfigUIPermissionsTest— couverture des permissions et des options
Ces tests peuvent servir d'exemples lors de l'intégration de cette fonctionnalité dans des modules personnalisés.