コード例 #1
0
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: ApiQuerySiteinfo.php プロジェクト: rocLv/conference
 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);
 }