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