X-Git-Url: http://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fpreferences%2FDefaultPreferencesFactory.php;h=6cee7323f429db5dccb98bc3ac58ad4cd6096655;hp=56db81222e0797ef8d7d10969dbc9b513915d56d;hb=d912ae39113edf613ad47e30272d2eea68ef204d;hpb=e19e6bfabcaf2b6aa5dd837ff7057bd6a25baef8 diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php index 56db81222e..6cee7323f4 100644 --- a/includes/preferences/DefaultPreferencesFactory.php +++ b/includes/preferences/DefaultPreferencesFactory.php @@ -81,12 +81,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { protected $permissionManager; /** - * TODO Make this a const when we drop HHVM support (T192166) - * * @var array * @since 1.34 */ - public static $constructorOptions = [ + public const CONSTRUCTOR_OPTIONS = [ 'AllowRequiringEmailForResets', 'AllowUserCss', 'AllowUserCssPrefs', @@ -122,7 +120,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { * @param AuthManager $authManager * @param LinkRenderer $linkRenderer * @param NamespaceInfo $nsInfo - * @param PermissionManager|null $permissionManager + * @param PermissionManager $permissionManager */ public function __construct( ServiceOptions $options, @@ -130,15 +128,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { AuthManager $authManager, LinkRenderer $linkRenderer, NamespaceInfo $nsInfo, - PermissionManager $permissionManager = null + PermissionManager $permissionManager ) { - $options->assertRequiredOptions( self::$constructorOptions ); + $options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS ); - if ( !$permissionManager ) { - // TODO: this is actually hard-deprecated, left for jenkins to pass - // together with GlobalPreferences extension. Will be removed in a followup. - $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); - } $this->options = $options; $this->contLang = $contLang; $this->authManager = $authManager; @@ -1525,7 +1518,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { } /** - * @var HTMLForm $htmlForm + * @var PreferencesFormOOUI $htmlForm */ $htmlForm = new $formClass( $formDescriptor, $context, 'prefs' ); @@ -1538,6 +1531,10 @@ class DefaultPreferencesFactory implements PreferencesFactory { ] ) ); $htmlForm->setModifiedUser( $user ); + $htmlForm->setOptionsEditable( $this->permissionManager + ->userHasRight( $user, 'editmyoptions' ) ); + $htmlForm->setPrivateInfoEditable( $this->permissionManager + ->userHasRight( $user, 'editmyprivateinfo' ) ); $htmlForm->setId( 'mw-prefs-form' ); $htmlForm->setAutocomplete( 'off' ); $htmlForm->setSubmitText( $context->msg( 'saveprefs' )->text() ); @@ -1545,7 +1542,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { $htmlForm->setSubmitTooltip( 'preferences-save' ); $htmlForm->setSubmitID( 'prefcontrol' ); $htmlForm->setSubmitCallback( - function ( array $formData, HTMLForm $form ) use ( $formDescriptor ) { + function ( array $formData, PreferencesFormOOUI $form ) use ( $formDescriptor ) { return $this->submitForm( $formData, $form, $formDescriptor ); } );