// 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.
* (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();
+ }
}
/**
wfDebug( __METHOD__ . " tried to stash file at '$path', but it doesn't exist\n" );
throw new UploadStashBadPathException( "path doesn't exist" );
}
- $fileProps = FSFile::getPropsFromPath( $path );
+
+ $mwProps = new MWFileProps( MimeMagic::singleton() );
+ $fileProps = $mwProps->getPropsFromPath( $path, true );
wfDebug( __METHOD__ . " stashing file at '$path'\n" );
// we will be initializing from some tmpnam files that don't have extensions.