summaryrefslogtreecommitdiff
path: root/includes/api/ApiUndelete.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/api/ApiUndelete.php')
-rw-r--r--includes/api/ApiUndelete.php58
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() {