Author: Bryan.TongMinh
Description:
Upload code terribly mixes backend stuff with interface code. Interface code belongs to SpecialUpload, while backend stuff needs its own classes:
class UploadFromBase {}
class UploadFromUpload extends UploadFromBase {}
class UploadFromUrl extends UploadFromBase {}
class UploadFromStash extends UploadFromBase {}
SpecialUpload should probably decide which ones to call.
All classes will have an initialize( &$request ) method which is called by the constructor with $wgRequest by default but could be called with a FauxRequest by a subclass.
Permission checking should be moved to a static method, either in SpecialUpload or UploadFromBase.
Version: 1.13.x
Severity: enhancement