Fix inconsistency in ArchivedFile::getUser
authorBrian Wolff <bawolff+wn@gmail.com>
Thu, 12 Dec 2013 20:01:50 +0000 (13:01 -0700)
committerBrian Wolff <bawolff+wn@gmail.com>
Thu, 12 Dec 2013 22:55:49 +0000 (15:55 -0700)
It was returning user id, where the interface is to take an
argument, and by default return the user text.

This caused weird output (user id instead of name) in certain places.

Change-Id: Icae281de67cfaafe52f1fb1fa4c7556aff7cd306
Follow-up: 8bd386e3680808d1ae1166140ef6917f0498ef3a

includes/filerepo/file/ArchivedFile.php

index 0d86c70..012dd84 100644 (file)
@@ -451,15 +451,20 @@ class ArchivedFile {
        }
 
        /**
-        * Return the user ID of the uploader.
+        * Returns ID or name of user who uploaded the file
         *
-        * @return int
+        * @note Prior to MediaWiki 1.23, this method always
+        *   returned the user id, and was inconsistent with
+        *   the rest of the file classes.
+        * @param string $type 'text' or 'id'
+        * @return int|string
         */
-       public function getUser() {
+       public function getUser( $type = 'text' ) {
                $this->load();
-               if ( $this->isDeleted( File::DELETED_USER ) ) {
-                       return 0;
-               } else {
+
+               if ( $type == 'text' ) {
+                       return $this->user_text;
+               } elseif ( $type == 'id' ) {
                        return $this->user;
                }
        }
@@ -467,9 +472,11 @@ class ArchivedFile {
        /**
         * Return the user name of the uploader.
         *
+        * @deprecated 1.23 Use getUser( 'text' ) instead.
         * @return string
         */
        public function getUserText() {
+               wfDeprecated( __METHOD__, '1.23' );
                $this->load();
                if ( $this->isDeleted( File::DELETED_USER ) ) {
                        return 0;