}
// Second pass: add result data to $retval
foreach($goodNames as $u) {
- if(!isset($data[$u]))
- $data[$u] = array('name' => $u, 'missing' => '');
- else {
+ if(!isset($data[$u])) {
+ $data[$u] = array('name' => $u);
+ $iwUser = UserrightsPage::fetchUser($u);
+ if($iwUser instanceof UserRightsProxy) {
+ $data[$u]['interwiki'] = '';
+ if(!is_null($params['token']))
+ {
+ $tokenFunctions = $this->getTokenFunctions();
+ foreach($params['token'] as $t)
+ {
+ $val = call_user_func($tokenFunctions[$t], $iwUser);
+ if($val === false)
+ $this->setWarning("Action '$t' is not allowed for the current user");
+ else
+ $data[$u][$t . 'token'] = $val;
+ }
+ }
+ } else
+ $data[$u]['missing'] = '';
+ } else {
if(isset($this->prop['groups']) && isset($data[$u]['groups']))
$this->getResult()->setIndexedTagName($data[$u]['groups'], 'g');
}
if(is_null($params['token']))
$this->dieUsageMsg(array('missingparam', 'token'));
- $form = new UserrightsPage;
- $user = $form->fetchUser($params['user']);
+ $user = UserrightsPage::fetchUser($params['user']);
if($user instanceof WikiErrorMsg)
$this->dieUsageMsg(array_merge(
(array)$user->getMessageKey(),
* Side effects: error output for invalid access
* @return mixed User, UserRightsProxy, or WikiErrorMsg
*/
- function fetchUser( $username ) {
+ public static function fetchUser( $username ) {
global $wgUser, $wgUserrightsInterwikiDelimiter;
$parts = explode( $wgUserrightsInterwikiDelimiter, $username );