}
protected function getCurrentUserInfo() {
- global $wgUser, $wgRequest;
+ global $wgUser, $wgRequest, $wgHiddenPrefs;
$result = $this->getResult();
$vals = array();
$vals['id'] = intval( $wgUser->getId() );
$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() ) );
$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'] ) ) {
$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();
}
}
+ 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();
'blockinfo',
'hasmsg',
'groups',
+ 'implicitgroups',
'rights',
'changeablegroups',
'options',
'editcount',
'ratelimits',
'email',
+ 'realname',
'acceptlang',
+ 'registrationdate'
)
)
);
' 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',
)
);
}
return 'Get information about the current user';
}
- protected function getExamples() {
+ public function getExamples() {
return array(
'api.php?action=query&meta=userinfo',
'api.php?action=query&meta=userinfo&uiprop=blockinfo|groups|rights|hasmsg',
);
}
+ public function getHelpUrls() {
+ return 'http://www.mediawiki.org/wiki/API:Meta#userinfo_.2F_ui';
+ }
+
public function getVersion() {
return __CLASS__ . ': $Id$';
}