From: Chad Horohoe Date: Fri, 2 Sep 2016 17:18:12 +0000 (-0700) Subject: Clean up user handling in UploadStash X-Git-Tag: 1.31.0-rc.0~5668^2~1 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/journal.php?a=commitdiff_plain;ds=sidebyside;h=58713d2b1611e55fcd0cf7647af8d96ebc1e88bf;p=lhc%2Fweb%2Fwiklou.git Clean up user handling in UploadStash - User parameter is now *required*, remove $wgUser fallback - We don't actually need the object after construction, don't store it Change-Id: Id0cc859b70e5d0608ffbfa591bce6a1feb7cc3be --- diff --git a/includes/upload/UploadStash.php b/includes/upload/UploadStash.php index c171ded7da..1c3e13b985 100644 --- a/includes/upload/UploadStash.php +++ b/includes/upload/UploadStash.php @@ -73,8 +73,8 @@ class UploadStash { // fileprops cache protected $fileProps = []; - // current user - protected $user, $userId, $isLoggedIn; + // current user info + protected $userId, $isLoggedIn; /** * Represents a temporary filestore, with metadata in the database. @@ -82,25 +82,15 @@ class UploadStash { * (should replace it eventually). * * @param FileRepo $repo - * @param User $user (default null) + * @param User $user */ - public function __construct( FileRepo $repo, $user = null ) { + public function __construct( FileRepo $repo, User $user ) { // this might change based on wiki's configuration. $this->repo = $repo; - // if a user was passed, use it. otherwise, attempt to use the global. - // this keeps FileRepo from breaking when it creates an UploadStash object - if ( $user ) { - $this->user = $user; - } else { - global $wgUser; - $this->user = $wgUser; - } - - if ( is_object( $this->user ) ) { - $this->userId = $this->user->getId(); - $this->isLoggedIn = $this->user->isLoggedIn(); - } + // We only need the logged in status and user id. + $this->userId = $user->getId(); + $this->isLoggedIn = $user->isLoggedIn(); } /** diff --git a/maintenance/cleanupUploadStash.php b/maintenance/cleanupUploadStash.php index cd7a8420f9..3c768d87a3 100644 --- a/maintenance/cleanupUploadStash.php +++ b/maintenance/cleanupUploadStash.php @@ -74,7 +74,7 @@ class UploadStashCleanup extends Maintenance { // this could be done some other, more direct/efficient way, but using // UploadStash's own methods means it's less likely to fall accidentally // out-of-date someday - $stash = new UploadStash( $repo ); + $stash = new UploadStash( $repo, new User() ); $i = 0; foreach ( $keys as $key ) { diff --git a/tests/phpunit/includes/upload/UploadStashTest.php b/tests/phpunit/includes/upload/UploadStashTest.php index 9b25505c68..e1db084baa 100644 --- a/tests/phpunit/includes/upload/UploadStashTest.php +++ b/tests/phpunit/includes/upload/UploadStashTest.php @@ -55,10 +55,8 @@ class UploadStashTest extends MediaWikiTestCase { * @todo give this test a real name explaining what is being tested here */ public function testBug29408() { - $this->setMwGlobals( 'wgUser', self::$users['uploader']->getUser() ); - $repo = RepoGroup::singleton()->getLocalRepo(); - $stash = new UploadStash( $repo ); + $stash = new UploadStash( $repo, self::$users['uploader']->getUser() ); // Throws exception caught by PHPUnit on failure $file = $stash->stashFile( $this->bug29408File );