diff options
Diffstat (limited to 'includes/api/ApiUndelete.php')
-rw-r--r-- | includes/api/ApiUndelete.php | 58 |
1 files changed, 21 insertions, 37 deletions
diff --git a/includes/api/ApiUndelete.php b/includes/api/ApiUndelete.php index 4bbe568d..07aad9f5 100644 --- a/includes/api/ApiUndelete.php +++ b/includes/api/ApiUndelete.php @@ -56,11 +56,11 @@ class ApiUndelete extends ApiBase { $params['timestamps'][$i] = wfTimestamp( TS_MW, $ts ); } - $pa = new PageArchive( $titleObj ); + $pa = new PageArchive( $titleObj, $this->getConfig() ); $retval = $pa->undelete( ( isset( $params['timestamps'] ) ? $params['timestamps'] : array() ), $params['reason'], - array(), + $params['fileids'], false, $this->getUser() ); @@ -70,7 +70,7 @@ class ApiUndelete extends ApiBase { if ( $retval[1] ) { wfRunHooks( 'FileUndeleteComplete', - array( $titleObj, array(), $this->getUser(), $params['reason'] ) ); + array( $titleObj, $params['fileids'], $this->getUser(), $params['reason'] ) ); } $this->setWatch( $params['watchlist'], $titleObj ); @@ -96,15 +96,15 @@ class ApiUndelete extends ApiBase { ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_REQUIRED => true ), - 'token' => array( - ApiBase::PARAM_TYPE => 'string', - ApiBase::PARAM_REQUIRED => true - ), 'reason' => '', 'timestamps' => array( ApiBase::PARAM_TYPE => 'timestamp', ApiBase::PARAM_ISMULTI => true, ), + 'fileids' => array( + ApiBase::PARAM_TYPE => 'integer', + ApiBase::PARAM_ISMULTI => true, + ), 'watchlist' => array( ApiBase::PARAM_DFLT => 'preferences', ApiBase::PARAM_TYPE => array( @@ -120,46 +120,30 @@ class ApiUndelete extends ApiBase { public function getParamDescription() { return array( 'title' => 'Title of the page you want to restore', - 'token' => 'An undelete token previously retrieved through list=deletedrevs', 'reason' => 'Reason for restoring', - 'timestamps' => 'Timestamps of the revisions to restore. If not set, all revisions will be restored.', - 'watchlist' => 'Unconditionally add or remove the page from your watchlist, use preferences or do not change watch', - ); - } - - public function getResultProperties() { - return array( - '' => array( - 'title' => 'string', - 'revisions' => 'integer', - 'filerevisions' => 'integer', - 'reason' => 'string' - ) + 'timestamps' => array( + 'Timestamps of the revisions to restore.', + 'If both timestamps and fileids are empty, all will be restored.', + ), + 'fileids' => array( + 'IDs of the file revisions to restore.', + 'If both timestamps and fileids are empty, all will be restored.', + ), + 'watchlist' => 'Unconditionally add or remove the page from your ' . + 'watchlist, use preferences or do not change watch', ); } public function getDescription() { return array( - 'Restore certain revisions of a deleted page. A list of deleted revisions (including timestamps) can be', - 'retrieved through list=deletedrevs' + 'Restore certain revisions of a deleted page. A list of deleted revisions ', + '(including timestamps) can be retrieved through list=deletedrevs, and a list', + 'of deleted file ids can be retrieved through list=filearchive.' ); } - public function getPossibleErrors() { - return array_merge( parent::getPossibleErrors(), array( - array( 'permdenied-undelete' ), - array( 'blockedtext' ), - array( 'invalidtitle', 'title' ), - array( 'cannotundelete' ), - ) ); - } - public function needsToken() { - return true; - } - - public function getTokenSalt() { - return ''; + return 'csrf'; } public function getExamples() { |