Convert Preferences class into PreferencesFactory service
[lhc/web/wiklou.git] / includes / user / User.php
index 854ebbd..b26a577 100644 (file)
@@ -27,6 +27,7 @@ use MediaWiki\Session\Token;
 use MediaWiki\Auth\AuthManager;
 use MediaWiki\Auth\AuthenticationResponse;
 use MediaWiki\Auth\AuthenticationRequest;
+use MediaWiki\User\UserIdentity;
 use Wikimedia\ScopedCallback;
 use Wikimedia\Rdbms\Database;
 use Wikimedia\Rdbms\DBExpectedError;
@@ -48,7 +49,7 @@ define( 'EDIT_TOKEN_SUFFIX', Token::SUFFIX );
  * for rendering normal pages are set in the cookie to minimize use
  * of the database.
  */
-class User implements IDBAccessObject {
+class User implements IDBAccessObject, UserIdentity {
        /**
         * @const int Number of characters in user_token field.
         */
@@ -178,6 +179,7 @@ class User implements IDBAccessObject {
                'reupload-shared',
                'rollback',
                'sendemail',
+               'sendemail-new-users',
                'siteadmin',
                'suppressionlog',
                'suppressredirect',
@@ -232,7 +234,7 @@ class User implements IDBAccessObject {
         * @deprecated since 1.29
         */
        private $mGroups;
-       /** @var array Associative array of (group name => UserGroupMembership object) */
+       /** @var UserGroupMembership[] Associative array of (group name => UserGroupMembership object) */
        protected $mGroupMemberships;
        /** @var array */
        protected $mOptionOverrides;
@@ -3087,12 +3089,13 @@ class User implements IDBAccessObject {
                        $options = $this->mOptions;
                }
 
-               $prefs = Preferences::getPreferences( $this, $context );
+               $preferencesFactory = MediaWikiServices::getInstance()->getPreferencesFactory();
+               $prefs = $preferencesFactory->getFormDescriptor( $this, $context );
                $mapping = [];
 
                // Pull out the "special" options, so they don't get converted as
                // multiselect or checkmatrix.
-               $specialOptions = array_fill_keys( Preferences::getSaveBlacklist(), true );
+               $specialOptions = array_fill_keys( $preferencesFactory->getSaveBlacklist(), true );
                foreach ( $specialOptions as $name => $value ) {
                        unset( $prefs[$name] );
                }
@@ -3315,7 +3318,7 @@ class User implements IDBAccessObject {
         * Get the list of explicit group memberships this user has, stored as
         * UserGroupMembership objects. Implicit groups are not included.
         *
-        * @return array Associative array of (group name as string => UserGroupMembership object)
+        * @return UserGroupMembership[] Associative array of (group name => UserGroupMembership object)
         * @since 1.29
         */
        public function getGroupMemberships() {