Merge "Revert "Adding sanity check to Title::isRedirect().""
[lhc/web/wiklou.git] / includes / upload / UploadFromUrl.php
index cfedb79..c7e482e 100644 (file)
@@ -1,9 +1,30 @@
 <?php
 /**
- * Implements uploading from a HTTP resource.
+ * Backend for uploading files from a HTTP resource.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @ingroup upload
+ * @ingroup Upload
+ */
+
+/**
+ * Implements uploading from a HTTP resource.
+ *
+ * @ingroup Upload
  * @author Bryan Tong Minh
  * @author Michael Dale
  */
@@ -48,9 +69,13 @@ class UploadFromUrl extends UploadBase {
                if ( !count( $wgCopyUploadsDomains ) ) {
                        return true;
                }
+               $parsedUrl = wfParseUrl( $url );
+               if ( !$parsedUrl ) {
+                       return false;
+               }
                $valid = false;
                foreach( $wgCopyUploadsDomains as $domain ) {
-                       if ( strpos( $url, $domain ) !== false ) {
+                       if ( $parsedUrl['host'] === $domain ) {
                                $valid = true;
                                break;
                        }
@@ -90,7 +115,7 @@ class UploadFromUrl extends UploadBase {
                if ( !$desiredDestName ) {
                        $desiredDestName = $request->getText( 'wpUploadFileURL' );
                }
-               return $this->initialize(
+               $this->initialize(
                        $desiredDestName,
                        trim( $request->getVal( 'wpUploadFileURL' ) ),
                        false
@@ -205,6 +230,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer verifying the
         * upload until the file really has been fetched.
+        * @return array|mixed
         */
        public function verifyUpload() {
                if ( $this->mAsync ) {
@@ -216,6 +242,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer checking warnings
         * until the file really has been fetched.
+        * @return Array
         */
        public function checkWarnings() {
                if ( $this->mAsync ) {
@@ -228,6 +255,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer checking protection
         * until we are sure that the file can actually be uploaded
+        * @return bool|mixed
         */
        public function verifyTitlePermissions( $user ) {
                if ( $this->mAsync ) {
@@ -239,6 +267,7 @@ class UploadFromUrl extends UploadBase {
        /**
         * Wrapper around the parent function in order to defer uploading to the
         * job queue for asynchronous uploads
+        * @return Status
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
                if ( $this->mAsync ) {