*/
class UploadStash {
// Format of the key for files -- has to be suitable as a filename itself (e.g. ab12cd34ef.jpg)
- const KEY_FORMAT_REGEX = '/^[\w-\.]+\.\w*$/';
+ const KEY_FORMAT_REGEX = '/^[\w\-\.]+\.\w*$/';
const MAX_US_PROPS_SIZE = 65535;
/**
* (should replace it eventually).
*
* @param FileRepo $repo
- * @param User $user (default null)
+ * @param User|null $user
*/
public function __construct( FileRepo $repo, $user = null ) {
// this might change based on wiki's configuration.
* database, along with other metadata.
*
* @param string $path Path to file you want stashed
- * @param string $sourceType The type of upload that generated this file
+ * @param string|null $sourceType The type of upload that generated this file
* (currently, I believe, 'file' or null)
* @throws UploadStashBadPathException
* @throws UploadStashFileException
);
// store the insertid in the class variable so immediate retrieval
- // (possibly laggy) isn't necesary.
+ // (possibly laggy) isn't necessary.
$this->fileMetadata[$key]['us_id'] = $dbw->insertId();
# create the UploadStashFile object for this file.
$this->fileKey = $key;
// resolve mwrepo:// urls
- if ( $repo->isVirtualUrl( $path ) ) {
+ if ( FileRepo::isVirtualUrl( $path ) ) {
$path = $repo->resolveVirtualUrl( $path );
} else {
// check if path appears to be sane, no parent traversals,
return $this->repo->fileExists( $this->path );
}
}
-
-/**
- * @ingroup Upload
- */
-class UploadStashException extends MWException implements ILocalizedException {
- /** @var string|array|MessageSpecifier */
- protected $messageSpec;
-
- /**
- * @param string|array|MessageSpecifier $messageSpec See Message::newFromSpecifier
- * @param int $code Exception code
- * @param Exception|Throwable $previous The previous exception used for the exception chaining.
- */
- public function __construct( $messageSpec, $code = 0, $previous = null ) {
- $this->messageSpec = $messageSpec;
-
- $msg = $this->getMessageObject()->text();
- $msg = preg_replace( '!</?(var|kbd|samp|code)>!', '"', $msg );
- $msg = Sanitizer::stripAllTags( $msg );
- parent::__construct( $msg, $code, $previous );
- }
-
- public function getMessageObject() {
- return Message::newFromSpecifier( $this->messageSpec );
- }
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashFileNotFoundException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashBadPathException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashFileException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashZeroLengthFileException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashNotLoggedInException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashWrongOwnerException extends UploadStashException {
-}
-
-/**
- * @ingroup Upload
- */
-class UploadStashNoSuchKeyException extends UploadStashException {
-}