Do not define contradictory user preferences for enabling/disabling VE

Depending on the config, we would sometimes define both the
'visualeditor-enable' and the 'visualeditor-betatempdisable'
preferences, even though they contradict each other.

Bug: T273188
Change-Id: I6ac7e4580bf232a5198ad8842f814bc381131e00
This commit is contained in:
Bartosz Dziewoński 2021-01-28 13:28:44 +01:00
parent b1fa5839c4
commit 4b1f141511

View file

@ -758,7 +758,10 @@ class VisualEditorHooks {
$veConfig = MediaWikiServices::getInstance()->getConfigFactory()
->makeConfig( 'visualeditor' );
if ( !ExtensionRegistry::getInstance()->isLoaded( 'BetaFeatures' ) ) {
if (
$veConfig->get( 'VisualEditorEnableBetaFeature' ) &&
!ExtensionRegistry::getInstance()->isLoaded( 'BetaFeatures' )
) {
// Config option for visual editing "alpha" state (no Beta Feature)
$namespaces = ApiVisualEditor::getAvailableNamespaceIds( $veConfig );
@ -780,14 +783,16 @@ class VisualEditorHooks {
$preferences['visualeditor-enable'] = $visualEnablePreference;
}
// Config option for visual editing "deployed" state (opt-out)
$preferences['visualeditor-betatempdisable'] = [
'type' => 'toggle',
'label-message' => 'visualeditor-preference-betatempdisable',
'section' => 'editing/editor',
'default' => $user->getOption( 'visualeditor-betatempdisable' ) ||
$user->getOption( 'visualeditor-autodisable' )
];
if ( !$veConfig->get( 'VisualEditorEnableBetaFeature' ) ) {
// Config option for visual editing "deployed" state (opt-out)
$preferences['visualeditor-betatempdisable'] = [
'type' => 'toggle',
'label-message' => 'visualeditor-preference-betatempdisable',
'section' => 'editing/editor',
'default' => $user->getOption( 'visualeditor-betatempdisable' ) ||
$user->getOption( 'visualeditor-autodisable' )
];
}
// Config option for wikitext editing "deployed" state (opt-out)
if (