$this->useTransactionalTimeLimit();
$params = $this->extractRequestParams();
- $user = $this->getUser();
- if ( !$user->isAllowed( 'undelete' ) ) {
- $this->dieUsageMsg( 'permdenied-undelete' );
- }
+ $user = $this->getUser();
if ( $user->isBlocked() ) {
$this->dieBlocked( $user->getBlock() );
}
$titleObj = Title::newFromText( $params['title'] );
if ( !$titleObj || $titleObj->isExternal() ) {
- $this->dieUsageMsg( [ 'invalidtitle', $params['title'] ] );
+ $this->dieWithError( [ 'apierror-invalidtitle', wfEscapeWikiText( $params['title'] ) ] );
+ }
+
+ if ( !$titleObj->userCan( 'undelete', $user, 'secure' ) ) {
+ $this->dieWithError( 'permdenied-undelete' );
}
// Check if user can add tags
$params['tags']
);
if ( !is_array( $retval ) ) {
- $this->dieUsageMsg( 'cannotundelete' );
+ $this->dieWithError( 'apierror-cantundelete' );
}
if ( $retval[1] ) {
}
public function getHelpUrls() {
- return 'https://www.mediawiki.org/wiki/API:Undelete';
+ return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Undelete';
}
}