summaryrefslogtreecommitdiff
path: root/includes/api/ApiQueryUserInfo.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/api/ApiQueryUserInfo.php')
-rw-r--r--includes/api/ApiQueryUserInfo.php41
1 files changed, 33 insertions, 8 deletions
diff --git a/includes/api/ApiQueryUserInfo.php b/includes/api/ApiQueryUserInfo.php
index ec7b74b3..8a8ce118 100644
--- a/includes/api/ApiQueryUserInfo.php
+++ b/includes/api/ApiQueryUserInfo.php
@@ -1,6 +1,6 @@
<?php
/**
- * API for MediaWiki 1.8+
+ *
*
* Created on July 30, 2007
*
@@ -55,7 +55,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
}
protected function getCurrentUserInfo() {
- global $wgUser, $wgRequest;
+ global $wgUser, $wgRequest, $wgHiddenPrefs;
$result = $this->getResult();
$vals = array();
$vals['id'] = intval( $wgUser->getId() );
@@ -83,6 +83,11 @@ class ApiQueryUserInfo extends ApiQueryBase {
$result->setIndexedTagName( $vals['groups'], 'g' ); // even if empty
}
+ if ( isset( $this->prop['implicitgroups'] ) ) {
+ $vals['implicitgroups'] = ApiQueryUsers::getAutoGroups( $wgUser );
+ $result->setIndexedTagName( $vals['implicitgroups'], 'g' ); // even if empty
+ }
+
if ( isset( $this->prop['rights'] ) ) {
// User::getRights() may return duplicate values, strip them
$vals['rights'] = array_values( array_unique( $wgUser->getRights() ) );
@@ -101,12 +106,10 @@ class ApiQueryUserInfo extends ApiQueryBase {
$vals['options'] = $wgUser->getOptions();
}
- if (
- isset( $this->prop['preferencestoken'] ) &&
+ if ( isset( $this->prop['preferencestoken'] ) &&
is_null( $this->getMain()->getRequest()->getVal( 'callback' ) )
- )
- {
- $vals['preferencestoken'] = $wgUser->editToken();
+ ) {
+ $vals['preferencestoken'] = $wgUser->editToken( '', $this->getMain()->getRequest() );
}
if ( isset( $this->prop['editcount'] ) ) {
@@ -117,6 +120,10 @@ class ApiQueryUserInfo extends ApiQueryBase {
$vals['ratelimits'] = $this->getRateLimits();
}
+ if ( isset( $this->prop['realname'] ) && !in_array( 'realname', $wgHiddenPrefs ) ) {
+ $vals['realname'] = $wgUser->getRealName();
+ }
+
if ( isset( $this->prop['email'] ) ) {
$vals['email'] = $wgUser->getEmail();
$auth = $wgUser->getEmailAuthenticationTimestamp();
@@ -125,6 +132,13 @@ class ApiQueryUserInfo extends ApiQueryBase {
}
}
+ if ( isset( $this->prop['registrationdate'] ) ) {
+ $regDate = $wgUser->getRegistration();
+ if ( $regDate !== false ) {
+ $vals['registrationdate'] = wfTimestamp( TS_ISO_8601, $regDate );
+ }
+ }
+
if ( isset( $this->prop['acceptlang'] ) ) {
$langs = $wgRequest->getAcceptLang();
$acceptLang = array();
@@ -182,6 +196,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
'blockinfo',
'hasmsg',
'groups',
+ 'implicitgroups',
'rights',
'changeablegroups',
'options',
@@ -189,7 +204,9 @@ class ApiQueryUserInfo extends ApiQueryBase {
'editcount',
'ratelimits',
'email',
+ 'realname',
'acceptlang',
+ 'registrationdate'
)
)
);
@@ -202,13 +219,17 @@ class ApiQueryUserInfo extends ApiQueryBase {
' blockinfo - Tags if the current user is blocked, by whom, and for what reason',
' hasmsg - Adds a tag "message" if the current user has pending messages',
' groups - Lists all the groups the current user belongs to',
+ ' implicitgroups - Lists all the groups the current user is automatically a member of',
' rights - Lists all the rights the current user has',
' changeablegroups - Lists the groups the current user can add to and remove from',
' options - Lists all preferences the current user has set',
+ ' preferencestoken - Get a token to change current user\'s preferences',
' editcount - Adds the current user\'s edit count',
' ratelimits - Lists all rate limits applying to the current user',
+ ' realname - Adds the user\'s real name',
' email - Adds the user\'s email address and email authentication date',
' acceptlang - Echoes the Accept-Language header sent by the client in a structured format',
+ ' registrationdate - Adds the user\'s registration date',
)
);
}
@@ -224,7 +245,11 @@ class ApiQueryUserInfo extends ApiQueryBase {
);
}
+ public function getHelpUrls() {
+ return 'https://www.mediawiki.org/wiki/API:Meta#userinfo_.2F_ui';
+ }
+
public function getVersion() {
- return __CLASS__ . ': $Id: ApiQueryUserInfo.php 75937 2010-11-03 17:01:21Z reedy $';
+ return __CLASS__ . ': $Id: ApiQueryUserInfo.php 104449 2011-11-28 15:52:04Z reedy $';
}
}