protected function appendUserGroups($property, $numberInGroup) { $config = $this->getConfig(); $data = array(); $result = $this->getResult(); $allGroups = User::getAllGroups(); foreach ($config->get('GroupPermissions') as $group => $permissions) { $arr = array('name' => $group, 'rights' => array_keys($permissions, true)); if ($numberInGroup) { $autopromote = $config->get('Autopromote'); if ($group == 'user') { $arr['number'] = SiteStats::users(); // '*' and autopromote groups have no size } elseif ($group !== '*' && !isset($autopromote[$group])) { $arr['number'] = SiteStats::numberInGroup($group); } } $groupArr = array('add' => $config->get('AddGroups'), 'remove' => $config->get('RemoveGroups'), 'add-self' => $config->get('GroupsAddToSelf'), 'remove-self' => $config->get('GroupsRemoveFromSelf')); foreach ($groupArr as $type => $rights) { if (isset($rights[$group])) { $groups = array_intersect($rights[$group], $allGroups); if ($groups) { $arr[$type] = $groups; ApiResult::setIndexedTagName($arr[$type], 'group'); } } } ApiResult::setIndexedTagName($arr['rights'], 'permission'); $data[] = $arr; } ApiResult::setIndexedTagName($data, 'group'); return $result->addValue('query', $property, $data); }
protected function appendUserGroups($property, $numberInGroup) { global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups, $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf; $data = array(); $result = $this->getResult(); foreach ($wgGroupPermissions as $group => $permissions) { $arr = array('name' => $group, 'rights' => array_keys($permissions, true)); if ($numberInGroup) { global $wgAutopromote; if ($group == 'user') { $arr['number'] = SiteStats::users(); // '*' and autopromote groups have no size } elseif ($group !== '*' && !isset($wgAutopromote[$group])) { $arr['number'] = SiteStats::numberInGroup($group); } } $groupArr = array('add' => $wgAddGroups, 'remove' => $wgRemoveGroups, 'add-self' => $wgGroupsAddToSelf, 'remove-self' => $wgGroupsRemoveFromSelf); foreach ($groupArr as $type => $rights) { if (isset($rights[$group])) { $arr[$type] = $rights[$group]; $result->setIndexedTagName($arr[$type], 'group'); } } $result->setIndexedTagName($arr['rights'], 'permission'); $data[] = $arr; } $result->setIndexedTagName($data, 'group'); return $result->addValue('query', $property, $data); }
protected function appendUserGroups($property, $numberInGroup) { global $wgGroupPermissions; $data = array(); foreach ($wgGroupPermissions as $group => $permissions) { $arr = array('name' => $group, 'rights' => array_keys($permissions, true)); if ($numberInGroup) { $arr['number'] = SiteStats::numberInGroup($group); } $this->getResult()->setIndexedTagName($arr['rights'], 'permission'); $data[] = $arr; } $this->getResult()->setIndexedTagName($data, 'group'); return $this->getResult()->addValue('query', $property, $data); }