jenkins-bot has submitted this change and it was merged.

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


Cache role lookup

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

Approvals:
  coren: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/nova/OpenStackNovaRole.php b/nova/OpenStackNovaRole.php
index 770da94..c61aa58 100644
--- a/nova/OpenStackNovaRole.php
+++ b/nova/OpenStackNovaRole.php
@@ -169,6 +169,8 @@
                }
                $key = wfMemcKey( 'openstackmanager', "fulltoken-$projectname", 
$username );
                $wgMemc->delete( $key );
+               $key = wfMemcKey( 'openstackmanager', 'roles', $user->userDN );
+               $wgMemc->delete( $key );
        }
 
        /**
diff --git a/nova/OpenStackNovaUser.php b/nova/OpenStackNovaUser.php
index 6c8bd1b..71b0d78 100644
--- a/nova/OpenStackNovaUser.php
+++ b/nova/OpenStackNovaUser.php
@@ -181,8 +181,14 @@
         * @return array
         */
        function getRoles() {
-               global $wgAuth;
+               global $wgAuth, $wgMemc;
                global $wgOpenStackManagerLDAPProjectBaseDN;
+
+               $key = wfMemcKey( 'openstackmanager', 'roles', $this->userDN );
+               $roles = $wgMemc->get( $key );
+               if ( is_array( $roles ) ) {
+                       return $roles;
+               }
 
                # All projects have a owner attribute, project
                # roles do not
@@ -198,10 +204,12 @@
                                        $roles[] = $entry['cn'][0];
                                }
                        }
+                       $roles = array_unique( $roles );
                } else {
                        $wgAuth->printDebug( "No result found when searching 
for user's roles", NONSENSITIVE );
                }
-               return array_unique( $roles );
+               $wgMemc->set( $key, $roles, '3600' );
+               return $roles;
        }
 
        /**
@@ -608,8 +616,11 @@
        }
 
        static function DynamicSidebarGetGroups( &$groups ) {
-               $user = new OpenStackNovaUser();
-               $groups = array_merge( $groups, $user->getRoles() );
+               global $wgUser;
+               if ( $wgUser->isLoggedIn() ) {
+                       $user = new OpenStackNovaUser();
+                       $groups = array_merge( $groups, $user->getRoles() );
+               }
 
                return true;
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I8da4794c1fe88b60cf3f2f21922e50d3d056f8ac
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Ryan Lane <[email protected]>
Gerrit-Reviewer: coren <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to