[evolvis-commits] r15188: Refresh cached available roles when needed

mirabilos at evolvis.org mirabilos at evolvis.org
Mon Feb 28 23:48:34 CET 2011


Author: mirabilos
Date: 2011-02-28 23:48:34 +0100 (Mon, 28 Feb 2011)
New Revision: 15188

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/RBACEngine.class.php
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/session.php
Log:
Refresh cached available roles when needed

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/RBACEngine.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/RBACEngine.class.php	2011-02-28 22:48:31 UTC (rev 15187)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/RBACEngine.class.php	2011-02-28 22:48:34 UTC (rev 15188)
@@ -68,6 +68,10 @@
 		return $this->_cached_available_roles ;
 	}
 
+	public function invalidateRoleCaches () {
+		$this->_cached_available_roles = NULL ;
+	}
+
 	public function getAvailableRolesForUser($user) {
 		$result = array () ;
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/session.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/session.php	2011-02-28 22:48:31 UTC (rev 15187)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/session.php	2011-02-28 22:48:34 UTC (rev 15188)
@@ -112,6 +112,8 @@
 	// NB: cookies must be deleted with the same scope parameters they were set with
 	//
 	session_cookie('session_ser', '');
+
+	RBACEngine::getInstance()->invalidateRoleCaches() ;
 	return true;
 }
 
@@ -473,6 +475,7 @@
 		}
 	}
 
+	RBACEngine::getInstance()->invalidateRoleCaches() ;
 }
 
 
@@ -561,6 +564,8 @@
 		}
 	}
 	plugin_hook('session_set_return');
+
+	RBACEngine::getInstance()->invalidateRoleCaches() ;
 }
 
 //TODO - this should be generalized and used for pre.php, 



More information about the evolvis-commits mailing list