http://www.mediawiki.org/wiki/Special:Code/MediaWiki/96044

Revision: 96044
Author:   laner
Date:     2011-09-01 21:26:17 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
* Remove hack in OpenStackNovaUser.php that searches for user dn's improperly 
in some cases
* Add userInfo search to project and role member lists
** This has a nasty performance penalty, but is required. Memcache support here 
would fix this

Modified Paths:
--------------
    trunk/extensions/OpenStackManager/OpenStackNovaProject.php
    trunk/extensions/OpenStackManager/OpenStackNovaRole.php
    trunk/extensions/OpenStackManager/OpenStackNovaUser.php

Modified: trunk/extensions/OpenStackManager/OpenStackNovaProject.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackNovaProject.php  2011-09-01 
21:20:43 UTC (rev 96043)
+++ trunk/extensions/OpenStackManager/OpenStackNovaProject.php  2011-09-01 
21:26:17 UTC (rev 96044)
@@ -73,15 +73,26 @@
         * @return array
         */
        function getMembers() {
+               global $wgAuth;
+
                $members = array();
                if ( isset( $this->projectInfo[0]['member'] ) ) {
                        $memberdns = $this->projectInfo[0]['member'];
                        array_shift( $memberdns );
                        foreach ( $memberdns as $memberdn ) {
-                               $member = explode( '=', $memberdn );
-                               $member = explode( ',', $member[1] );
-                               $member = $member[0];
-                               $members[] = $member;
+                               $searchattr = $wgAuth->getSearchAttribute();
+                               if ( $searchattr ) {
+                                       // We need to look up the search attr 
from the user entry
+                                       // this is expensive, but must be done.
+                                       // TODO: memcache this
+                                       $userInfo = 
$wgAuth->getUserInfoStateless( $memberdn );
+                                       $members[] = 
$userInfo[0][$searchattr][0];                                                
+                               } else {
+                                       $member = explode( '=', $memberdn );
+                                       $member = explode( ',', $member[1] );
+                                       $member = $member[0];
+                                       $members[] = $member;
+                               }
                        }
                }
 

Modified: trunk/extensions/OpenStackManager/OpenStackNovaRole.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackNovaRole.php     2011-09-01 
21:20:43 UTC (rev 96043)
+++ trunk/extensions/OpenStackManager/OpenStackNovaRole.php     2011-09-01 
21:26:17 UTC (rev 96044)
@@ -77,15 +77,26 @@
         * @return array
         */
        function getMembers() {
+               global $wgAuth;
+
                $members = array();
                if ( isset( $this->roleInfo[0]['member'] ) ) {
                        $memberdns = $this->roleInfo[0]['member'];
                        array_shift( $memberdns );
                        foreach ( $memberdns as $memberdn ) {
-                               $member = explode( '=', $memberdn );
-                               $member = explode( ',', $member[1] );
-                               $member = $member[0];
-                               $members[] = $member;
+                               $searchattr = $wgAuth->getSearchAttribute();
+                               if ( $searchattr ) {
+                                       // We need to look up the search attr 
from the user entry
+                                       // this is expensive, but must be done.
+                                       // TODO: memcache this
+                                       $userInfo = 
$wgAuth->getUserInfoStateless( $memberdn );
+                                       $members[] = 
$userInfo[0][$searchattr][0];
+                               } else {
+                                       $member = explode( '=', $memberdn );
+                                       $member = explode( ',', $member[1] );
+                                       $member = $member[0];
+                                       $members[] = $member;
+                               }
                        }
                }
 

Modified: trunk/extensions/OpenStackManager/OpenStackNovaUser.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackNovaUser.php     2011-09-01 
21:20:43 UTC (rev 96043)
+++ trunk/extensions/OpenStackManager/OpenStackNovaUser.php     2011-09-01 
21:26:17 UTC (rev 96044)
@@ -20,12 +20,13 @@
         */
        function fetchUserInfo() {
                global $wgAuth, $wgUser;
-               global $wgOpenStackManagerLDAPUseUidAsNamingAttribute;
 
-               if ( $this->username && 
!$wgOpenStackManagerLDAPUseUidAsNamingAttribute ) {
+               if ( $this->username ) {
                        $this->userDN = $wgAuth->getUserDN( strtolower( 
$this->username ) );
+                       $wgAuth->printDebug( "Fetching userdn using username: 
$this->userDN ", NONSENSITIVE );
                } else {
                        $this->userDN = $wgAuth->getUserDN( strtolower( 
$wgUser->getName() ) );
+                       $wgAuth->printDebug( "Fetching userdn using wiki name: 
$this->userDN", NONSENSITIVE );
                }
                $this->userInfo = $wgAuth->userInfo;
        }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to