فهرست منبع

Fixed bug when creating a login (flush privileges = reset the data cache)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@175 a333f486-631f-4898-b8df-5754b55c2be0
romainq 15 سال پیش
والد
کامیت
c44674e566

+ 4 - 0
addons/userrights/userrightsmatrix.class.inc.php

@@ -425,6 +425,10 @@ class UserRightsMatrix extends UserRightsAddOnAPI
 		}
 		return $iRetCode;
 	}
+
+	public function FlushPrivileges()
+	{
+	}
 }
 
 UserRights::SelectModule('UserRightsMatrix');

+ 4 - 0
addons/userrights/userrightsnull.class.inc.php

@@ -73,6 +73,10 @@ class UserRightsNull extends UserRightsAddOnAPI
 	{
 		return UR_ALLOWED_YES;
 	}
+
+	public static function FlushPrivileges()
+	{
+	}
 }
 
 UserRights::SelectModule('UserRightsNull');

+ 11 - 1
addons/userrights/userrightsprofile.class.inc.php

@@ -123,6 +123,9 @@ class URP_Users extends UserRightsBaseClass
 
 	function DisplayBareRelations(web_page $oPage)
 	{
+		// We may have just added a user, then we have to reset any existing cache
+		UserRights::FlushPrivileges();
+
 		parent::DisplayBareRelations($oPage);
 
 		$oPage->SetCurrentTabContainer('Related Objects');
@@ -232,6 +235,9 @@ class URP_Profiles extends UserRightsBaseClass
 
 	function DisplayBareRelations(web_page $oPage)
 	{
+		// We may have just added a user, then we have to reset any existing cache
+		UserRights::FlushPrivileges();
+
 		parent::DisplayBareRelations($oPage);
 
 		$oPage->SetCurrentTabContainer('Related Objects');
@@ -1293,6 +1299,11 @@ exit;
 		$this->m_aMatchingProfiles[$iUser][$sClass][$iObjectRef] = $aRes;
 		return $aRes; 
 	}
+
+	public function FlushPrivileges()
+	{
+		$this->CacheData();
+	}
 }
 
 //
@@ -1614,7 +1625,6 @@ class SetupITILProfiles
 		}
 	}
 	
-
 	public static function DoCreateProfiles()
 	{
 		self::DoCreateAdminProfile();

+ 7 - 0
core/userrights.class.inc.php

@@ -56,6 +56,7 @@ abstract class UserRightsAddOnAPI
 	abstract public function IsStimulusAllowed($iUserId, $sClass, $sStimulusCode, /*dbObjectSet*/ $oInstanceSet = null);
 	abstract public function IsActionAllowedOnAttribute($iUserId, $sClass, $sAttCode, $iActionCode, /*dbObjectSet*/ $oInstanceSet = null);
 	abstract public function IsAdministrator($iUserId);
+	abstract public function FlushPrivileges();
 }
 
 
@@ -269,6 +270,12 @@ class UserRights
 			return self::$m_oAddOn->IsAdministrator($iUserId);
 		}
 	}
+
+	public static function FlushPrivileges()
+	{
+		return self::$m_oAddOn->FlushPrivileges();
+	}
+
 }