Ryan Lane has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/58630


Change subject: Cache role lookup
......................................................................

Cache role lookup

Change-Id: Ib08999f600462d994283e0d6e89a9f44a9987bc3
---
M nova/OpenStackNovaRole.php
M nova/OpenStackNovaUser.php
2 files changed, 10 insertions(+), 4 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/OpenStackManager 
refs/changes/30/58630/1

diff --git a/nova/OpenStackNovaRole.php b/nova/OpenStackNovaRole.php
index c61aa58..0389927 100644
--- a/nova/OpenStackNovaRole.php
+++ b/nova/OpenStackNovaRole.php
@@ -169,7 +169,7 @@
                }
                $key = wfMemcKey( 'openstackmanager', "fulltoken-$projectname", 
$username );
                $wgMemc->delete( $key );
-               $key = wfMemcKey( 'openstackmanager', 'roles', $user->userDN );
+               $key = wfMemcKey( 'openstackmanager', 'roles', 
$user->getUsername() );
                $wgMemc->delete( $key );
        }
 
diff --git a/nova/OpenStackNovaUser.php b/nova/OpenStackNovaUser.php
index 71b0d78..1682004 100644
--- a/nova/OpenStackNovaUser.php
+++ b/nova/OpenStackNovaUser.php
@@ -208,6 +208,7 @@
                } else {
                        $wgAuth->printDebug( "No result found when searching 
for user's roles", NONSENSITIVE );
                }
+               $key = wfMemcKey( 'openstackmanager', 'roles', 
$this->getUsername() );
                $wgMemc->set( $key, $roles, '3600' );
                return $roles;
        }
@@ -616,10 +617,15 @@
        }
 
        static function DynamicSidebarGetGroups( &$groups ) {
-               global $wgUser;
+               global $wgUser, $wgMemc;
                if ( $wgUser->isLoggedIn() ) {
-                       $user = new OpenStackNovaUser();
-                       $groups = array_merge( $groups, $user->getRoles() );
+                       $key = wfMemcKey( 'openstackmanager', 'roles', 
$wgUser->getName() );
+                       $roles = $wgMemc->get( $key );
+                       if ( !is_array( $roles ) ) {
+                               $user = new OpenStackNovaUser();
+                               $roles = $user->getRoles();
+                       }
+                       $groups = array_merge( $groups, $roles );
                }
 
                return true;

-- 
To view, visit https://gerrit.wikimedia.org/r/58630
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib08999f600462d994283e0d6e89a9f44a9987bc3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Ryan Lane <[email protected]>

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

Reply via email to