summaryrefslogtreecommitdiff
path: root/includes/api/ApiTokens.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/api/ApiTokens.php')
-rw-r--r--includes/api/ApiTokens.php75
1 files changed, 13 insertions, 62 deletions
diff --git a/includes/api/ApiTokens.php b/includes/api/ApiTokens.php
index 2c9b482c..d220a5e6 100644
--- a/includes/api/ApiTokens.php
+++ b/includes/api/ApiTokens.php
@@ -24,25 +24,17 @@
* @file
*/
-
/**
* @ingroup API
*/
class ApiTokens extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
- wfProfileIn( __METHOD__ );
$params = $this->extractRequestParams();
$res = array();
$types = $this->getTokenTypes();
foreach ( $params['type'] as $type ) {
- $type = strtolower( $type );
-
$val = call_user_func( $types[$type], null, null );
if ( $val === false ) {
@@ -53,20 +45,24 @@ class ApiTokens extends ApiBase {
}
$this->getResult()->addValue( null, $this->getModuleName(), $res );
- wfProfileOut( __METHOD__ );
}
private function getTokenTypes() {
+ // If we're in JSON callback mode, no tokens can be obtained
+ if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+ return array();
+ }
+
static $types = null;
if ( $types ) {
return $types;
}
wfProfileIn( __METHOD__ );
- $types = array( 'patrol' => 'ApiQueryRecentChanges::getPatrolToken' );
+ $types = array( 'patrol' => array( 'ApiQueryRecentChanges', 'getPatrolToken' ) );
$names = array( 'edit', 'delete', 'protect', 'move', 'block', 'unblock',
'email', 'import', 'watch', 'options' );
foreach ( $names as $name ) {
- $types[$name] = 'ApiQueryInfo::get' . ucfirst( $name ) . 'Token';
+ $types[$name] = array( 'ApiQueryInfo', 'get' . ucfirst( $name ) . 'Token' );
}
wfRunHooks( 'ApiTokensGetTokenTypes', array( &$types ) );
ksort( $types );
@@ -85,54 +81,13 @@ class ApiTokens extends ApiBase {
}
public function getResultProperties() {
- return array(
- '' => array(
- 'patroltoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'edittoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'deletetoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'protecttoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'movetoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'blocktoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'unblocktoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'emailtoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'importtoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'watchtoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- ),
- 'optionstoken' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- )
- )
+ $props = array(
+ '' => array(),
);
+
+ self::addTokenProperties( $props, $this->getTokenTypes() );
+
+ return $props;
}
public function getParamDescription() {
@@ -151,8 +106,4 @@ class ApiTokens extends ApiBase {
'api.php?action=tokens&type=email|move' => 'Retrieve an email token and a move token'
);
}
-
- public function getVersion() {
- return __CLASS__ . ': $Id$';
- }
}