Revert "Clean up user handling in UploadStash"

This reverts commit 58713d2b16.

Bug: T145228
Change-Id: Ic62f19109f98fab9dd029acccecd6518b649e34b
This commit is contained in:
Bartosz Dziewoński 2016-09-10 15:27:49 +00:00
parent 58713d2b16
commit 44947af94a
3 changed files with 21 additions and 9 deletions

View file

@ -73,8 +73,8 @@ class UploadStash {
// fileprops cache
protected $fileProps = [];
// current user info
protected $userId, $isLoggedIn;
// current user
protected $user, $userId, $isLoggedIn;
/**
* Represents a temporary filestore, with metadata in the database.
@ -82,15 +82,25 @@ class UploadStash {
* (should replace it eventually).
*
* @param FileRepo $repo
* @param User $user
* @param User $user (default null)
*/
public function __construct( FileRepo $repo, User $user ) {
public function __construct( FileRepo $repo, $user = null ) {
// this might change based on wiki's configuration.
$this->repo = $repo;
// We only need the logged in status and user id.
$this->userId = $user->getId();
$this->isLoggedIn = $user->isLoggedIn();
// 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();
}
}
/**

View file

@ -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, new User() );
$stash = new UploadStash( $repo );
$i = 0;
foreach ( $keys as $key ) {

View file

@ -55,8 +55,10 @@ 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, self::$users['uploader']->getUser() );
$stash = new UploadStash( $repo );
// Throws exception caught by PHPUnit on failure
$file = $stash->stashFile( $this->bug29408File );