Merge "Services: Convert DefaultPreferencesFactory's static to a const now HHVM is...
[lhc/web/wiklou.git] / includes / preferences / DefaultPreferencesFactory.php
index 10c88ff..6cee732 100644 (file)
@@ -81,12 +81,10 @@ class DefaultPreferencesFactory implements PreferencesFactory {
        protected $permissionManager;
 
        /**
        protected $permissionManager;
 
        /**
-        * TODO Make this a const when we drop HHVM support (T192166)
-        *
         * @var array
         * @since 1.34
         */
         * @var array
         * @since 1.34
         */
-       public static $constructorOptions = [
+       public const CONSTRUCTOR_OPTIONS = [
                'AllowRequiringEmailForResets',
                'AllowUserCss',
                'AllowUserCssPrefs',
                'AllowRequiringEmailForResets',
                'AllowUserCss',
                'AllowUserCssPrefs',
@@ -132,7 +130,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
                NamespaceInfo $nsInfo,
                PermissionManager $permissionManager
        ) {
                NamespaceInfo $nsInfo,
                PermissionManager $permissionManager
        ) {
-               $options->assertRequiredOptions( self::$constructorOptions );
+               $options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS );
 
                $this->options = $options;
                $this->contLang = $contLang;
 
                $this->options = $options;
                $this->contLang = $contLang;
@@ -1520,7 +1518,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
                }
 
                /**
                }
 
                /**
-                * @var HTMLForm $htmlForm
+                * @var PreferencesFormOOUI $htmlForm
                 */
                $htmlForm = new $formClass( $formDescriptor, $context, 'prefs' );
 
                 */
                $htmlForm = new $formClass( $formDescriptor, $context, 'prefs' );
 
@@ -1533,6 +1531,10 @@ class DefaultPreferencesFactory implements PreferencesFactory {
                ] ) );
 
                $htmlForm->setModifiedUser( $user );
                ] ) );
 
                $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() );
                $htmlForm->setId( 'mw-prefs-form' );
                $htmlForm->setAutocomplete( 'off' );
                $htmlForm->setSubmitText( $context->msg( 'saveprefs' )->text() );
@@ -1540,7 +1542,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
                $htmlForm->setSubmitTooltip( 'preferences-save' );
                $htmlForm->setSubmitID( 'prefcontrol' );
                $htmlForm->setSubmitCallback(
                $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 );
                        }
                );
                                return $this->submitForm( $formData, $form, $formDescriptor );
                        }
                );