Krenair

MediaWiki CentralAuth code

Jul 31st, 2012
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.63 KB | None | 0 0
  1.     /**
  2.      * @param $row
  3.      * @return bool|string
  4.      */
  5.     protected function getUserGroups( $row ) {
  6.         if ( !$row->gug_numgroups ) {
  7.             return false;
  8.         }
  9.         if ( $row->gug_numgroups == 1 ) {
  10.             return User::makeGroupLinkWiki( $row->gug_singlegroup, User::getGroupMember( $row->gug_singlegroup ) );
  11.         }
  12.  
  13.         $result = $this->mDb->select( 'global_user_groups', 'gug_group', array( 'gug_user' => $row->gu_id ), __METHOD__ );
  14.         $globalgroups = array();
  15.         foreach ( $result as $row2 ) {
  16.             if ( !in_array( $row2->gug_group, array_keys( $this->wikiSets ) ) ) { // We don't need to get the sets of groups we already know about.
  17.                 $globalgroups[] = $row2->gug_group;
  18.             }
  19.         }
  20.  
  21.         if ( count ( $globalgroups ) != 0 ) {
  22.             $wikiSetQuery = $this->mDb->select(
  23.                 array( 'global_group_restrictions', 'wikiset' ),
  24.                 array( 'ggr_group', 'ws_id', 'ws_name', 'ws_type', 'ws_wikis' ),
  25.                 array( 'ggr_set=ws_id', 'ggr_group IN (\'' . implode( "','", $globalgroups ) . '\')' ),
  26.                 __METHOD__
  27.             );
  28.  
  29.             foreach ( $wikiSetQuery as $wikiSetRow ) {
  30.                 $this->wikiSets[$wikiSetRow->ggr_group] = WikiSet::newFromRow( $wikiSetRow );
  31.             }
  32.         }
  33.  
  34.         $rights = array();
  35.         foreach ( $result as $row2 ) {
  36.             if ( isset( $this->wikiSets[$row2->gug_group] ) && !$this->wikiSets[$row2->gug_group]->inSet() ) {
  37.                 $group = User::makeGroupLinkWiki( $row2->gug_group, User::getGroupMember( $row2->gug_group ) );
  38.                 $rights[] = Html::element( 'span', array( 'class' => 'groupnotappliedhere' ), $group );
  39.             } else {
  40.                 $rights[] = User::makeGroupLinkWiki( $row2->gug_group, User::getGroupMember( $row2->gug_group ) );
  41.             }
  42.         }
  43.  
  44.         return implode( ', ', $rights );
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment