/**
  * @param $row
  * @return bool|string
  */
 protected function getUserGroups($row)
 {
     if (!$row->gug_numgroups) {
         return false;
     }
     $result = $this->mDb->select('global_user_groups', 'gug_group', array('gug_user' => $row->gu_id), __METHOD__);
     $globalgroups = array();
     foreach ($result as $row2) {
         if (!isset($this->wikiSets[$row2->gug_group])) {
             // We don't need to get the sets of groups we already know about.
             $globalgroups[] = $row2->gug_group;
         }
     }
     if (count($globalgroups) != 0) {
         $wikiSetQuery = $this->mDb->select(array('global_group_restrictions', 'wikiset'), array('ggr_group', 'ws_id', 'ws_name', 'ws_type', 'ws_wikis'), array('ggr_set=ws_id', 'ggr_group' => $globalgroups), __METHOD__);
         foreach ($wikiSetQuery as $wikiSetRow) {
             $this->wikiSets[$wikiSetRow->ggr_group] = WikiSet::newFromRow($wikiSetRow);
         }
     }
     $rights = array();
     foreach ($result as $row2) {
         if (isset($this->wikiSets[$row2->gug_group]) && !$this->wikiSets[$row2->gug_group]->inSet()) {
             $group = User::makeGroupLinkWiki($row2->gug_group, User::getGroupMember($row2->gug_group));
             $rights[] = Html::element('span', array('class' => 'groupnotappliedhere'), $group);
         } else {
             $rights[] = User::makeGroupLinkWiki($row2->gug_group, User::getGroupMember($row2->gug_group));
         }
     }
     return $this->getLanguage()->listToText($rights);
 }
 /**
  * Load user groups and rights from the database.
  */
 protected function loadGroups()
 {
     if (isset($this->mGroups)) {
         // Already loaded
         return;
     }
     // We need the user id from the database, but this should be checked by the getId accessor.
     wfDebugLog('CentralAuthVerbose', "Loading groups for global user {$this->mName}");
     $dbr = self::getCentralDB();
     // We need the master.
     $res = $dbr->select(array('global_group_permissions', 'global_user_groups'), array('ggp_permission', 'ggp_group'), array('ggp_group=gug_group', 'gug_user' => $this->getId()), __METHOD__);
     $resSets = $dbr->select(array('global_user_groups', 'global_group_restrictions', 'wikiset'), array('ggr_group', 'ws_id', 'ws_name', 'ws_type', 'ws_wikis'), array('ggr_group=gug_group', 'ggr_set=ws_id', 'gug_user' => $this->getId()), __METHOD__);
     $sets = array();
     foreach ($resSets as $row) {
         /* @var $row object */
         $sets[$row->ggr_group] = WikiSet::newFromRow($row);
     }
     // Grab the user's rights/groups.
     $rights = array();
     $groups = array();
     foreach ($res as $row) {
         /** @var $set User|bool */
         $set = isset($sets[$row->ggp_group]) ? $sets[$row->ggp_group] : '';
         $rights[] = array('right' => $row->ggp_permission, 'set' => $set ? $set->getID() : false);
         $groups[$row->ggp_group] = 1;
     }
     $this->mRights = $rights;
     $this->mGroups = array_keys($groups);
 }