Merge "New namespace MediaWiki\Tests\Maintenance"
[lhc/web/wiklou.git] / includes / user / User.php
index 854ebbd..7684d2e 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.
         */
@@ -232,7 +233,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 +3088,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 +3317,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() {
@@ -4581,7 +4583,7 @@ class User implements IDBAccessObject {
         * (T8957 with Gmail and Internet Explorer).
         *
         * @param string $page Special page
-        * @param string $token Token
+        * @param string $token
         * @return string Formatted URL
         */
        protected function getTokenUrl( $page, $token ) {