return $this->tokenFunctions;
}
- static protected $cachedTokens = [];
+ protected static $cachedTokens = [];
/**
* @deprecated since 1.24
if ( $titleExists ) {
$pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
- $pageInfo['lastrevid'] = intval( $this->pageLatest[$pageid] );
- $pageInfo['length'] = intval( $this->pageLength[$pageid] );
+ $pageInfo['lastrevid'] = (int)$this->pageLatest[$pageid];
+ $pageInfo['length'] = (int)$this->pageLength[$pageid];
if ( isset( $this->pageIsRedir[$pageid] ) && $this->pageIsRedir[$pageid] ) {
$pageInfo['redirect'] = true;
return null; // force a continuation
}
+ $detailLevel = $this->params['testactionsdetail'];
+ $rigor = $detailLevel === 'quick' ? 'quick' : 'secure';
+ $errorFormatter = $this->getErrorFormatter();
+ if ( $errorFormatter->getFormat() === 'bc' ) {
+ // Eew, no. Use a more modern format here.
+ $errorFormatter = $errorFormatter->newWithFormat( 'plaintext' );
+ }
+
$user = $this->getUser();
$pageInfo['actions'] = [];
foreach ( $this->params['testactions'] as $action ) {
$this->countTestedActions++;
- $pageInfo['actions'][$action] = $title->userCan( $action, $user );
+
+ if ( $detailLevel === 'boolean' ) {
+ $pageInfo['actions'][$action] = $title->userCan( $action, $user );
+ } else {
+ $pageInfo['actions'][$action] = $errorFormatter->arrayFromStatus( $this->errorArrayToStatus(
+ $title->getUserPermissionsErrors( $action, $user, $rigor ),
+ $user
+ ) );
+ }
}
}
$getTitles[] = $t->getTalkPage();
}
}
- if ( !count( $getTitles ) ) {
+ if ( $getTitles === [] ) {
return;
}
foreach ( $res as $row ) {
if ( MWNamespace::isTalk( $row->page_namespace ) ) {
$this->talkids[MWNamespace::getSubject( $row->page_namespace )][$row->page_title] =
- intval( $row->page_id );
+ (int)$row->page_id;
} else {
$this->subjectids[MWNamespace::getTalk( $row->page_namespace )][$row->page_title] =
- intval( $row->page_id );
+ (int)$row->page_id;
}
}
}
$pageIds = array_keys( $this->titles );
- if ( !count( $pageIds ) ) {
+ if ( $pageIds === [] ) {
return;
}
}
private function getVariantTitles() {
- if ( !count( $this->titles ) ) {
+ if ( $this->titles === [] ) {
return;
}
$this->variantTitles = [];
// need to be added to getCacheMode()
],
ApiBase::PARAM_HELP_MSG_PER_VALUE => [],
+ ApiBase::PARAM_DEPRECATED_VALUES => [
+ 'readable' => true, // Since 1.32
+ ],
],
'testactions' => [
ApiBase::PARAM_TYPE => 'string',
ApiBase::PARAM_ISMULTI => true,
],
+ 'testactionsdetail' => [
+ ApiBase::PARAM_TYPE => [ 'boolean', 'full', 'quick' ],
+ ApiBase::PARAM_DFLT => 'boolean',
+ ApiBase::PARAM_HELP_MSG_PER_VALUE => [],
+ ],
'token' => [
ApiBase::PARAM_DEPRECATED => true,
ApiBase::PARAM_ISMULTI => true,