Преглед изворни кода

Finalized the module "user rights by profile". It is fully integrated with the application setup (inc. sample data). and it it now ready for developing the user management GUI

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@93 a333f486-631f-4898-b8df-5754b55c2be0
romainq пре 16 година
родитељ
комит
99d191ac46

+ 147 - 64
addons/userrights/userrightsprofile.class.inc.php

@@ -14,6 +14,11 @@
  */
 
 
+// It is supposed that this profile does exist in the DB
+// Possible improvement: add it when executing the setup procedure
+//
+define('ADMIN_PROFILE_ID', 1);
+
 class URP_Users extends DBObject
 {
 	public static function Init()
@@ -106,7 +111,7 @@ class URP_Dimensions extends DBObject
 		MetaModel::Init_AddFilterFromAttribute("type");
 	}
 
-	public function CheckProjectionSpec($oProjectionSpec)
+	public function CheckProjectionSpec($oProjectionSpec, $sProjectedClass)
 	{
 		$sExpression = $oProjectionSpec->Get('value');
 		$sAttribute = $oProjectionSpec->Get('attribute');
@@ -129,30 +134,46 @@ class URP_Dimensions extends DBObject
 
 		// 2nd - compute the data type for the projection
 		//
-		$bIsOql = true;
-		$sExpressionClass = '';
-		try
+		$sTargetClass = '';
+		if (($sExpression == '<this>') || ($sExpression == '<user>'))
 		{
-			$oObjectSearch = DBObjectSearch::FromOQL($sExpression);
-			$sExpressionClass = $oObjectSearch->GetClass();
+			$sTargetClass = $sProjectedClass;
 		}
-		catch (OqlException $e)
+		elseif ($sExpression == '<any>')
 		{
-			$bIsOql = false;
+			$sTargetClass = '';
+		}
+		else
+		{
+			// Evaluate wether it is a constant or not
+			try
+			{
+				$oObjectSearch = DBObjectSearch::FromOQL($sExpression);
+
+				$sTargetClass = $oObjectSearch->GetClass();
+			}
+			catch (OqlException $e)
+			{
+			}
 		}
-		if ($bIsOql)
+
+		if (empty($sTargetClass))
+		{
+			$sFoundType = '_void_';
+		}
+		else
 		{
 			if (empty($sAttribute))
 			{
-				$sFoundType = $sExpressionClass;
+				$sFoundType = $sTargetClass;
 			}
 			else
 			{
-				if (!MetaModel::IsValidAttCode($sExpressionClass, $sAttribute))
+				if (!MetaModel::IsValidAttCode($sTargetClass, $sAttribute))
 				{
-					throw new CoreException('Unkown attribute code in projection specification', array('found' => $sAttribute, 'expecting' => MetaModel::GetAttributesList($sExpressionClass), 'class' => $sExpressionClass, 'projection' => $oProjectionSpec));
+					throw new CoreException('Unkown attribute code in projection specification', array('found' => $sAttribute, 'expecting' => MetaModel::GetAttributesList($sTargetClass), 'class' => $sTargetClass, 'projection' => $oProjectionSpec));
 				}
-				$oAttDef = MetaModel::GetAttributeDef($sExpressionClass, $sAttribute);
+				$oAttDef = MetaModel::GetAttributeDef($sTargetClass, $sAttribute);
 				if ($oAttDef->IsExternalKey())
 				{
 					$sFoundType = $oAttDef->GetTargetClass();
@@ -163,13 +184,9 @@ class URP_Dimensions extends DBObject
 				}
 			}
 		}
-		else
-		{
-			$sFoundType = '_scalar_';
-		}
 
 		// Compare the dimension type and projection type
-		if ($sFoundType != $sExpectedType)
+		if (($sFoundType != '_void_') && ($sFoundType != $sExpectedType))
 		{
 			throw new CoreException('Wrong type in projection specification', array('found' => $sFoundType, 'expecting' => $sExpectedType, 'expression' => $sExpression, 'attribute' => $sAttribute, 'projection' => $oProjectionSpec));
 		}
@@ -234,7 +251,7 @@ class URP_ProfileProjection extends DBObject
 		MetaModel::Init_AddAttribute(new AttributeExternalKey("profileid", array("targetclass"=>"URP_Profiles", "jointype"=> "", "label"=>"profile", "description"=>"usage profile", "allowed_values"=>null, "sql"=>"profileid", "is_null_allowed"=>false, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("profile", array("label"=>"Profile", "description"=>"Profile name", "allowed_values"=>null, "extkey_attcode"=> 'profileid', "target_attcode"=>"name")));
 
-		MetaModel::Init_AddAttribute(new AttributeString("value", array("label"=>"Value expression", "description"=>"OQL expression (using \$user) | constant | <any>", "allowed_values"=>null, "sql"=>"value", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("value", array("label"=>"Value expression", "description"=>"OQL expression (using \$user) | constant | <any> | <user>+attribute code", "allowed_values"=>null, "sql"=>"value", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("attribute", array("label"=>"Attribute", "description"=>"Target attribute code (optional)", "allowed_values"=>null, "sql"=>"attribute", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 
 		//MetaModel::Init_InheritFilters();
@@ -245,18 +262,31 @@ class URP_ProfileProjection extends DBObject
 	public function ProjectUser(URP_Users $oUser)
 	{
 		$sExpr = $this->Get('value');
-		if (strtolower(substr($sExpr, 0, 6)) == 'select')
-		{ 
+		if ($sExpr == '<user>')
+		{
 			$sColumn = $this->Get('attribute');
-			// SELECT...
-			$oValueSetDef = new ValueSetObjects($sExpr, $sColumn);
-			$aValues = $oValueSetDef->GetValues(array('user' => $oUser), '');
-			$aRes = array_values($aValues);
+			if (empty($sColumn))
+			{
+				$aRes = array($oUser->GetKey());
+			}
+			else
+			{
+				$aRes = array($oUser->Get($sColumn));
+			}
+			
 		}
 		elseif ($sExpr == '<any>')
 		{
 			$aRes = null;
 		}
+		elseif (strtolower(substr($sExpr, 0, 6)) == 'select')
+		{ 
+			$sColumn = $this->Get('attribute');
+			// SELECT...
+			$oValueSetDef = new ValueSetObjects($sExpr, $sColumn);
+			$aValues = $oValueSetDef->GetValues(array('user' => $oUser), '');
+			$aRes = array_keys($aValues);
+		}
 		else
 		{
 			// Constant value(s)
@@ -291,24 +321,42 @@ class URP_ClassProjection extends DBObject
 
 		MetaModel::Init_AddAttribute(new AttributeString("class", array("label"=>"Class", "description"=>"Target class", "allowed_values"=>null, "sql"=>"class", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 
-		MetaModel::Init_AddAttribute(new AttributeString("value", array("label"=>"Value expression", "description"=>"OQL expression (using \$this) | constant | <any>", "allowed_values"=>null, "sql"=>"value", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("value", array("label"=>"Value expression", "description"=>"OQL expression (using \$this) | constant | <any> | <this>+attribute code", "allowed_values"=>null, "sql"=>"value", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("attribute", array("label"=>"Attribute", "description"=>"Target attribute code (optional)", "allowed_values"=>null, "sql"=>"attribute", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 
 		//MetaModel::Init_InheritFilters();
 		MetaModel::Init_AddFilterFromAttribute("dimensionid");
+		// #@# verifier
 		MetaModel::Init_AddFilterFromAttribute("class");
 	}
 
 	public function ProjectObject($oObject)
 	{
 		$sExpr = $this->Get('value');
-		if (strtolower(substr($sExpr, 0, 6)) == 'select')
+		if ($sExpr == '<this>')
+		{
+			$sColumn = $this->Get('attribute');
+			if (empty($sColumn))
+			{
+				$aRes = array($oObject->GetKey());
+			}
+			else
+			{
+				$aRes = array($oObject->Get($sColumn));
+			}
+			
+		}
+		elseif ($sExpr == '<any>')
+		{
+			$aRes = null;
+		}
+		elseif (strtolower(substr($sExpr, 0, 6)) == 'select')
 		{ 
 			$sColumn = $this->Get('attribute');
 			// SELECT...
 			$oValueSetDef = new ValueSetObjects($sExpr, $sColumn);
-			$aValues = $oValueSetDef->GetValues(array('user' => $oObject), '');
-			$aRes = array_values($aValues);
+			$aValues = $oValueSetDef->GetValues(array('this' => $oObject), '');
+			$aRes = array_keys($aValues);
 		}
 		elseif ($sExpr == '<any>')
 		{
@@ -357,6 +405,7 @@ class URP_ActionGrant extends DBObject
 		MetaModel::Init_AddFilterFromAttribute("profileid");
 		MetaModel::Init_AddFilterFromAttribute("profile");
 		MetaModel::Init_AddFilterFromAttribute("class");
+		MetaModel::Init_AddFilterFromAttribute("permission");
 
 		MetaModel::Init_AddFilterFromAttribute("action");
 	}
@@ -396,6 +445,7 @@ class URP_StimulusGrant extends DBObject
 		MetaModel::Init_AddFilterFromAttribute("profileid");
 		MetaModel::Init_AddFilterFromAttribute("profile");
 		MetaModel::Init_AddFilterFromAttribute("class");
+		MetaModel::Init_AddFilterFromAttribute("permission");
 
 		MetaModel::Init_AddFilterFromAttribute("stimulus");
 	}
@@ -446,19 +496,22 @@ class UserRightsProfile extends UserRightsAddOnAPI
 	);
 
 	// Installation: create the very first user
-	public function CreateAdministrator($sAdminUser, $sAdminPwd, $sAdminEmail, $sFirstName, $sLastName, $sPhoneNumber)
+	public function CreateAdministrator($sAdminUser, $sAdminPwd)
 	{
-		// Maybe we should check that no other user with userid == 0 exists
 		$oUser = new URP_Users();
 		$oUser->Set('login', $sAdminUser);
 		$oUser->Set('password', $sAdminPwd);
-		$oUser->Set('email', $sAdminEmail);
-		$oUser->Set('firstname', $sFirstName);
-		$oUser->Set('lastname', $sLastName);
-		$oUser->Set('phonenumber', $sPhoneNumber);
-		$oUser->Set('userid', 1); // one is for root !
+		$oUser->Set('email', 'n/a');
+		$oUser->Set('firstname', 'administrator');
+		$oUser->Set('lastname', 'itop');
+		$oUser->Set('userid', 1); // let's mark it as #1 (for what purpose?)
 		$iUserId = $oUser->DBInsertNoReload();
-		$this->SetupUser($iUserId, true);
+		
+		// Add this user to the very specific 'admin' profile
+		$oUserProfile = new URP_UserProfile();
+		$oUserProfile->Set('userid', $iUserId);
+		$oUserProfile->Set('profileid', ADMIN_PROFILE_ID);
+		$oUserProfile->DBInsertNoReload();
 		return true;
 	}
 
@@ -543,9 +596,9 @@ class UserRightsProfile extends UserRightsAddOnAPI
 	{
 		$iProfileId = $oProfile->GetKey();
 
-		// Create grant records, for any class where it applies
+		// Create grant records, for any class where it matters (the rest could be done later on)
 		//
-		foreach(array('bizmodel', 'application', 'gui', 'core/cmdb') as $sCategory)
+		foreach(array('bizmodel') as $sCategory)
 		{
 			foreach (MetaModel::GetClasses($sCategory) as $sClass)
 			{
@@ -633,6 +686,8 @@ class UserRightsProfile extends UserRightsAddOnAPI
 	protected $m_aUserProfiles = array(); // userid,profileid -> object
 	protected $m_aProPro = array(); // profileid,dimensionid -> object
 
+	protected $m_aAdmins = array(); // id of users being linked to the profile #ADMIN_PROFILE_ID
+
 	protected $m_aClassActionGrants = array(); // profile, class, action -> permission
 	protected $m_aObjectActionGrants = array(); // userid, class, id, action -> permission, list of attributes
 
@@ -667,7 +722,11 @@ class UserRightsProfile extends UserRightsAddOnAPI
 		$oUserProfileSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT URP_UserProfile"));
 		while ($oUserProfile = $oUserProfileSet->Fetch())
 		{
-			$this->m_aUserProfiles[$oUserProfile->Get('userid')][$oUserProfile->Get('profileid')] = $oUserProfile; 
+			$this->m_aUserProfiles[$oUserProfile->Get('userid')][$oUserProfile->Get('profileid')] = $oUserProfile;
+			if ($oUserProfile->Get('profileid') == ADMIN_PROFILE_ID)
+			{
+				$this->m_aAdmins[] = $oUserProfile->Get('userid');
+			}
 		}
 
 		$oProProSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT URP_ProfileProjection"));
@@ -734,7 +793,7 @@ exit;
 		if (isset($aTest)) return $aTest;
 
 		// Get the permission for this profile/class/action
-		$oSearch = DBObjectSearch::FromOQL("SELECT URP_ActionGrant WHERE class = :class AND action = :action AND profileid = :profile");
+		$oSearch = DBObjectSearch::FromOQL("SELECT URP_ActionGrant WHERE class = :class AND action = :action AND profileid = :profile AND permission = 'yes'");
 		$oSet = new DBObjectSet($oSearch, array(), array('class'=>$sClass, 'action'=>$sAction, 'profile'=>$iProfile));
 		if ($oSet->Count() < 1)
 		{
@@ -764,14 +823,24 @@ exit;
 			{
 				continue; // loop to the next profile
 			}
-			elseif ($oGrantRecord->Get('permission') == 'yes')
+			else
 			{
 				$iInstancePermission = UR_ALLOWED_YES;
 
-				// merge the list of attributes allowed for this profile
+				// update the list of attributes with those allowed for this profile
+				//
 				$oSearch = DBObjectSearch::FromOQL("SELECT URP_AttributeGrant WHERE actiongrantid = :actiongrantid");
 				$oSet = new DBObjectSet($oSearch, array(), array('actiongrantid' => $oGrantRecord->GetKey()));
-				$aAttributes = array_merge($aAttributes, $oSet->GetColumnAsArray('attcode', false));
+				$aProfileAttributes = $oSet->GetColumnAsArray('attcode', false);
+				if (count($aProfileAttributes) == 0)
+				{
+					$aAllAttributes = array_keys(MetaModel::ListAttributeDefs($sClass));
+					$aAttributes = array_merge($aAttributes, $aAllAttributes);
+				}
+				else
+				{
+					$aAttributes = array_merge($aAttributes, $aProfileAttributes);
+				}
 			}
 		}
 
@@ -785,6 +854,9 @@ exit;
 	
 	public function IsActionAllowed($iUserId, $sClass, $iActionCode, dbObjectSet $oInstances)
 	{
+		// super admin rights
+		if (in_array($iUserId, $this->m_aAdmins)) return true;
+
 		$oUser = $this->m_aUsers[$iUserId];
 
 		$oInstances->Rewind();
@@ -798,6 +870,7 @@ exit;
 				if ($iInstancePermission != $iGlobalPermission)
 				{
 					$iGlobalPermission = UR_ALLOWED_DEPENDS;
+					break;
 				}
 			}
 			else
@@ -805,6 +878,8 @@ exit;
 				$iGlobalPermission = $iInstancePermission;
 			}
 		}
+		$oInstances->Rewind();
+
 		if (isset($iGlobalPermission))
 		{
 			return $iGlobalPermission;
@@ -817,6 +892,9 @@ exit;
 
 	public function IsActionAllowedOnAttribute($iUserId, $sClass, $sAttCode, $iActionCode, dbObjectSet $oInstances)
 	{
+		// super admin rights
+		if (in_array($iUserId, $this->m_aAdmins)) return true;
+
 		$oUser = $this->m_aUsers[$iUserId];
 
 		$oInstances->Rewind();
@@ -846,6 +924,8 @@ exit;
 				$iGlobalPermission = $iInstancePermission;
 			}
 		}
+		$oInstances->Rewind();
+
 		if (isset($iGlobalPermission))
 		{
 			return $iGlobalPermission;
@@ -858,6 +938,9 @@ exit;
 
 	public function IsStimulusAllowed($iUserId, $sClass, $sStimulusCode, dbObjectSet $oInstances)
 	{
+		// super admin rights
+		if (in_array($iUserId, $this->m_aAdmins)) return true;
+
 		$oUser = $this->m_aUsers[$iUserId];
 
 		// Note: this code is VERY close to the code of IsActionAllowed()
@@ -869,19 +952,14 @@ exit;
 			foreach($this->GetMatchingProfiles($oUser, $oObject) as $iProfile)
 			{
 				// Get the permission for this profile/class/stimulus
-				$oSearch = DBObjectSearch::FromOQL("SELECT URP_StimulusGrant WHERE class = :class AND stimulus = :stimulus AND profileid = :profile");
+				$oSearch = DBObjectSearch::FromOQL("SELECT URP_StimulusGrant WHERE class = :class AND stimulus = :stimulus AND profileid = :profile AND permission = 'yes'");
 				$oSet = new DBObjectSet($oSearch, array(), array('class'=>$sClass, 'stimulus'=>$sStimulusCode, 'profile'=>$iProfile));
 				if ($oSet->Count() < 1)
 				{
 					return UR_ALLOWED_NO;
 				}
-		
-				$oGrantRecord = $oSet->Fetch();
-				$sPermission = $oGrantRecord->Get('permission');
-				if ($sPermission == 'yes')
-				{
-					$iInstancePermission = UR_ALLOWED_YES;
-				}
+				// no need to fetch the record, we've requested the records having permission = 'yes'
+				$iInstancePermission = UR_ALLOWED_YES;
 			}
 			if (isset($iGlobalPermission))
 			{
@@ -895,6 +973,8 @@ exit;
 				$iGlobalPermission = $iInstancePermission;
 			}
 		}
+		$oInstances->Rewind();
+
 		if (isset($iGlobalPermission))
 		{
 			return $iGlobalPermission;
@@ -918,28 +998,31 @@ exit;
 		$aObjectProjection = $this->m_aClassProjs[$sClass][$iDimension]->ProjectObject($oObject);
 
 		$aRes = array();
-		foreach ($this->m_aUserProfiles[$iUser] as $iProfile => $oProfile)
+		if (array_key_exists($iUser, $this->m_aUserProfiles) > 0)
 		{
-			if (is_null($aObjectProjection))
+			foreach ($this->m_aUserProfiles[$iUser] as $iProfile => $oProfile)
 			{
-				$aRes[] = $iProfile;
-			}
-			else
-			{
-				// user projection to be cached on a given page !
-				$aUserProjection = $this->m_aProPros[$iProfile][$iDimension]->ProjectUser($oUser);
-				
-				if (is_null($aUserProjection))
+				if (is_null($aObjectProjection))
 				{
 					$aRes[] = $iProfile;
 				}
 				else
 				{
-					$aMatchingValues = array_intersect($aObjectProjection, $aUserProjection);
-					if (count($aMatchingValues) > 0)
+					// user projection to be cached on a given page !
+					$aUserProjection = $this->m_aProPros[$iProfile][$iDimension]->ProjectUser($oUser);
+					
+					if (is_null($aUserProjection))
 					{
 						$aRes[] = $iProfile;
 					}
+					else
+					{
+						$aMatchingValues = array_intersect($aObjectProjection, $aUserProjection);
+						if (count($aMatchingValues) > 0)
+						{
+							$aRes[] = $iProfile;
+						}
+					}
 				}
 			}
 		}

+ 8 - 7
business/itop.business.class.inc.php

@@ -249,7 +249,7 @@ class bizPerson extends bizContact
 			"name_attcode" => "name",
 			"state_attcode" => "",
 			"reconc_keys" => array("org_name", "first_name", "name"),  // comment en définir plusieurs
-			// "reconc_keys" => array("org_name", "employe_number"), 
+			// "reconc_keys" => array("org_name", "employee_number"), 
 			"db_table" => "persons",   // Can it use the same physical DB table as any contact ?
 			"db_key_field" => "id",
 			"db_finalclass_field" => "",
@@ -258,20 +258,21 @@ class bizPerson extends bizContact
 		MetaModel::Init_Params($aParams);
 		MetaModel::Init_InheritAttributes();
 		MetaModel::Init_AddAttribute(new AttributeString("first_name", array("label"=>"first Name", "description"=>"First name", "allowed_values"=>null, "sql"=>"first_name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("employe_number", array("label"=>"Employe Number", "description"=>"employe number", "allowed_values"=>null, "sql"=>"employe_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("employee_number", array("label"=>"Employee Number", "description"=>"employee number", "allowed_values"=>null, "sql"=>"employee_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
-//		MetaModel::Init_AddAttribute(new AttributeExternalKey("login_id", array("targetclass"=>"URP_Users", "label"=>"Login", "description"=>"Login information", "allowed_values"=>null, "sql"=>"login_id", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalKey("login_id", array("targetclass"=>"URP_Users", "label"=>"Login", "description"=>"Login information", "allowed_values"=>null, "sql"=>"login_id", "is_null_allowed"=>true, "depends_on"=>array())));
 
 		MetaModel::Init_InheritFilters();
 		MetaModel::Init_AddFilterFromAttribute("first_name");
-		MetaModel::Init_AddFilterFromAttribute("employe_number");
+		MetaModel::Init_AddFilterFromAttribute("employee_number");
+		MetaModel::Init_AddFilterFromAttribute("login_id");
 		
 		// Display lists
-		MetaModel::Init_SetZListItems('details', array('first_name', 'name', 'status', 'org_id', 'email', 'location_id', 'phone', 'employe_number')); // Attributes to be displayed for the complete details
+		MetaModel::Init_SetZListItems('details', array('first_name', 'name', 'status', 'org_id', 'email', 'location_id', 'phone', 'employee_number', 'login_id')); // Attributes to be displayed for the complete details
 		MetaModel::Init_SetZListItems('list', array('first_name', 'name', 'status', 'org_id', 'email', 'location_id', 'phone')); // Attributes to be displayed for a list
 		// Search criteria
-		MetaModel::Init_SetZListItems('standard_search', array('first_name', 'name', 'status', 'email', 'location_id', 'phone', 'employe_number')); // Criteria of the std search form
-		MetaModel::Init_SetZListItems('advanced_search', array('first_name', 'name', 'status', 'email', 'location_id', 'phone', 'employe_number')); // Criteria of the advanced search form
+		MetaModel::Init_SetZListItems('standard_search', array('first_name', 'name', 'status', 'email', 'location_id', 'phone', 'employee_number', 'login_id')); // Criteria of the std search form
+		MetaModel::Init_SetZListItems('advanced_search', array('first_name', 'name', 'status', 'email', 'location_id', 'phone', 'employee_number', 'login_id')); // Criteria of the advanced search form
 	}
 
 	public function Generate(cmdbDataGenerator $oGenerator)

+ 7 - 2
core/cmdbchangeop.class.inc.php

@@ -194,8 +194,13 @@ class CMDBChangeOpSetAttribute extends CMDBChangeOp
 	public function GetDescription()
 	{
 		$sResult = '';
-		$oEmptySet = new DBObjectSet($this->Get('objclass'));
-		if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oEmptySet) == UR_ALLOWED_YES)
+		$oTargetObjectClass = $this->Get('objclass');
+		$oTargetObjectKey = $this->Get('objkey');
+		$oTargetSearch = new DBObjectSearch($oTargetObjectClass);
+		$oTargetSearch->AddCondition('id', $oTargetObjectKey);
+
+		$oMonoObjectSet = new DBObjectSet($oTargetSearch);
+		if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES)
 		{
 			$oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode'));
 			$sAttName = $oAttDef->GetLabel();

+ 1 - 1
core/dbobjectset.class.php

@@ -21,7 +21,7 @@ class DBObjectSet
 	private $m_aId2Row;
 	private $m_iCurrRow;
 
-	public function __construct($oFilter, $aOrderBy = array(), $aArgs = array())
+	public function __construct(DBObjectSearch $oFilter, $aOrderBy = array(), $aArgs = array())
 	{
 		$this->m_oFilter = $oFilter;
 		$this->m_aOrderBy = $aOrderBy;

+ 36 - 28
core/metamodel.class.php

@@ -1173,6 +1173,32 @@ abstract class MetaModel
 
 	protected static $m_aQueryStructCache = array();
 
+	protected static function PrepareQueryArguments($aArgs)
+	{
+		// Translate any object into scalars
+		//
+		$aScalarArgs = array();
+		foreach($aArgs as $sArgName => $value)
+		{
+			if (self::IsValidObject($value))
+			{
+				$aScalarArgs[$sArgName] = $value->GetKey();
+				$aScalarArgs[$sArgName.'->id'] = $value->GetKey();
+			
+				$sClass = get_class($value);
+				foreach(self::ListAttributeDefs($sClass) as $sAttCode => $oAttDef)
+				{
+					$aScalarArgs[$sArgName.'->'.$sAttCode] = $value->Get($sAttCode);
+				}
+			}
+			else
+			{
+				$aScalarArgs[$sArgName] = (string) $value;
+			}
+		}
+		return $aScalarArgs;
+	}
+
 	public static function MakeSelectQuery(DBObjectSearch $oFilter, $aOrderBy = array(), $aArgs = array())
 	{
 		// Query caching
@@ -1219,30 +1245,9 @@ abstract class MetaModel
 			}
 		}
 		
-		// Prepare arguments (translate any object into scalars)
-		//
-		$aScalarArgs = $oFilter->GetInternalParams();
-		foreach($aArgs as $sArgName => $value)
-		{
-			if (self::IsValidObject($value))
-			{
-				$aScalarArgs[$sArgName] = $value->GetKey();
-				$aScalarArgs[$sArgName.'->id'] = $value->GetKey();
-			
-				$sClass = get_class($value);
-				foreach(self::ListAttributeDefs($sClass) as $sAttCode => $oAttDef)
-				{
-					$aScalarArgs[$sArgName.'->'.$sAttCode] = $value->Get($sAttCode);
-				}
-			}
-			else
-			{
-				$aScalarArgs[$sArgName] = (string) $value;
-			}
-		}
-
 		// Go
 		//
+		$aScalarArgs = array_merge(self::PrepareQueryArguments($aArgs), $oFilter->GetInternalParams());
 		$sRes = $oSelect->RenderSelect($aOrderBy, $aScalarArgs);
 
 		if (self::$m_bTraceQueries)
@@ -1277,17 +1282,18 @@ abstract class MetaModel
 		echo "<p>Count of built queries: ".count(self::$m_aQueriesLog)."</p>";
 	}
 
-	public static function MakeDeleteQuery(DBObjectSearch $oFilter)
+	public static function MakeDeleteQuery(DBObjectSearch $oFilter, $aArgs = array())
 	{
 		$aTranslation = array();
 		$aClassAliases = array();
 		$aTableAliases = array();
 		$oConditionTree = $oFilter->GetCriteria();
 		$oSelect = self::MakeQuery($oFilter->GetClassAlias(), $oConditionTree, $aClassAliases, $aTableAliases, $aTranslation, $oFilter);
-		return $oSelect->RenderDelete();
+		$aScalarArgs = array_merge(self::PrepareQueryArguments($aArgs), $oFilter->GetInternalParams());
+		return $oSelect->RenderDelete($aScalarArgs);
 	}
 
-	public static function MakeUpdateQuery(DBObjectSearch $oFilter, $aValues)
+	public static function MakeUpdateQuery(DBObjectSearch $oFilter, $aValues, $aArgs = array())
 	{
 		// $aValues is an array of $sAttCode => $value
 		$aTranslation = array();
@@ -1295,7 +1301,8 @@ abstract class MetaModel
 		$aTableAliases = array();
 		$oConditionTree = $oFilter->GetCriteria();
 		$oSelect = self::MakeQuery($oFilter->GetClassAlias(), $oConditionTree, $aClassAliases, $aTableAliases, $aTranslation, $oFilter, array(), $aValues);
-		return $oSelect->RenderUpdate();
+		$aScalarArgs = array_merge(self::PrepareQueryArguments($aArgs), $oFilter->GetInternalParams());
+		return $oSelect->RenderUpdate($aScalarArgs);
 	}
 
 	private static function MakeQuery($sGlobalTargetAlias, &$oConditionTree, &$aClassAliases, &$aTableAliases, &$aTranslation, DBObjectSearch $oFilter, $aExpectedAtts = array(), $aValues = array())
@@ -2439,6 +2446,9 @@ abstract class MetaModel
 		if (self::DBExists())
 		{
 			CMDBSource::SelectDB(self::$m_sDBName);
+
+			// Some of the init could not be done earlier (requiring classes to be declared and DB to be accessible)
+			self::InitPlugins();
 		}
 		else
 		{
@@ -2447,8 +2457,6 @@ abstract class MetaModel
 				throw new CoreException('Database not found, check your configuration file', array('config_file'=>$sConfigFile, 'db_name'=>self::$m_sDBName));
 			}
 		}
-		// Some of the init could not be done earlier (requiring classes to be declared and DB to be accessible)
-		self::InitPlugins();
 	}
 
 	public static function LoadConfig($sConfigFile)

+ 4 - 4
core/sqlquery.class.inc.php

@@ -171,7 +171,7 @@ class SQLQuery
 	}
 	
 	// Interface, build the SQL query
-	public function RenderDelete()
+	public function RenderDelete($aArgs = array())
 	{
 		// The goal will be to complete the list as we build the Joins
 		$aFrom = array();
@@ -193,12 +193,12 @@ class SQLQuery
 			throw new CoreException("Building a request wich will delete every object of a given table -looks suspicious- please use truncate instead...");
 		}
 		*/
-		$sWhere  = self::ClauseWhere($oCondition);
+		$sWhere  = self::ClauseWhere($oCondition, $aArgs);
 		return "DELETE $sDelete FROM $sFrom WHERE $sWhere";
 	}
 
 	// Interface, build the SQL query
-	public function RenderUpdate()
+	public function RenderUpdate($aArgs = array())
 	{
 		// The goal will be to complete the list as we build the Joins
 		$aFrom = array();
@@ -210,7 +210,7 @@ class SQLQuery
 
 		$sFrom   = self::ClauseFrom($aFrom);
 		$sValues = self::ClauseValues($aSetValues);
-		$sWhere  = self::ClauseWhere($oCondition);
+		$sWhere  = self::ClauseWhere($oCondition, $aArgs);
 		return "UPDATE $sFrom SET $sValues WHERE $sWhere";
 	}
 

+ 3 - 3
pages/usermanagement_classproj.php

@@ -52,18 +52,18 @@ function ComputeProjections($oPage, $sScope)
 		foreach ($aDimensions as $iDimension => $oDimension)
 		{
 			// #@# to be moved, may be time consuming
-			$oDimension->CheckProjectionSpec($aClassProjs[$sClass][$iDimension]);
+			$oDimension->CheckProjectionSpec($aClassProjs[$sClass][$iDimension], $sClass);
 
 			$aValues = $aClassProjs[$sClass][$iDimension]->ProjectObject($oObject);
 			if (is_null($aValues))
 			{
-				$sValues = '<any>';
+				$sValues = htmlentities('<any>');
 			}
 			else
 			{
 				$sValues = implode(', ', $aValues);
 			}
-			$oObjectProj['dim'.$oDimension->GetKey()] = htmlentities($sValues);
+			$oObjectProj['dim'.$oDimension->GetKey()] = $sValues;
 		}
 	
 		$aDisplayData[] = $oObjectProj;

+ 3 - 3
pages/usermanagement_profileproj.php

@@ -62,18 +62,18 @@ function ComputeProjections($oPage)
 			foreach ($aDimensions as $iDimension => $oDimension)
 			{
 				// #@# to be moved, may be time consuming
-				$oDimension->CheckProjectionSpec($aProPros[$iProfile][$iDimension]);
+				$oDimension->CheckProjectionSpec($aProPros[$iProfile][$iDimension], get_class($oUser));
 	
 				$aValues = $aProPros[$iProfile][$iDimension]->ProjectUser($oUser);
 				if (is_null($aValues))
 				{
-					$sValues = '<any>';
+					$sValues = htmlentities('<any>');
 				}
 				else
 				{
 					$sValues = implode(', ', $aValues);
 				}
-				$aUserProfileProj['dim'.$oDimension->GetKey()] = htmlentities($sValues);
+				$aUserProfileProj['dim'.$oDimension->GetKey()] = $sValues;
 			}
 		
 			$aDisplayData[] = $aUserProfileProj;

+ 6 - 6
pages/usermanagement_userstatus.php

@@ -45,18 +45,18 @@ function ComputeObjectProjections($oPage, $oObject)
 	foreach ($aDimensions as $iDimension => $oDimension)
 	{
 		// #@# to be moved, may be time consuming
-		$oDimension->CheckProjectionSpec($aClassProjs[$sClass][$iDimension]);
+		$oDimension->CheckProjectionSpec($aClassProjs[$sClass][$iDimension], $sClass);
 
 		$aValues = $aClassProjs[$sClass][$iDimension]->ProjectObject($oObject);
 		if (is_null($aValues))
 		{
-			$sValues = '<any>';
+			$sValues = htmlentities('<any>');
 		}
 		else
 		{
 			$sValues = implode(', ', $aValues);
 		}
-		$oObjectProj['dim'.$oDimension->GetKey()] = htmlentities($sValues);
+		$oObjectProj['dim'.$oDimension->GetKey()] = $sValues;
 	}
 
 	$aDisplayData[] = $oObjectProj;
@@ -117,18 +117,18 @@ function ComputeUserProjections($oPage, $oUser)
 		foreach ($aDimensions as $iDimension => $oDimension)
 		{
 			// #@# to be moved, may be time consuming
-			$oDimension->CheckProjectionSpec($aProPros[$iProfile][$iDimension]);
+			$oDimension->CheckProjectionSpec($aProPros[$iProfile][$iDimension], get_class($oUser));
 
 			$aValues = $aProPros[$iProfile][$iDimension]->ProjectUser($oUser);
 			if (is_null($aValues))
 			{
-				$sValues = '<any>';
+				$sValues = htmlentities('<any>');
 			}
 			else
 			{
 				$sValues = implode(', ', $aValues);
 			}
-			$aUserProfileProj['dim'.$oDimension->GetKey()] = htmlentities($sValues);
+			$aUserProfileProj['dim'.$oDimension->GetKey()] = $sValues;
 		}
 	
 		$aDisplayData[] = $aUserProfileProj;

+ 6 - 3
setup/data/03.persons.xml

@@ -8,7 +8,8 @@
 <phone></phone>
 <location_id>29</location_id>
 <first_name>Jules</first_name>
-<employe_number></employe_number>
+<employee_number></employee_number>
+<login_id></login_id>
 </bizPerson>
 <bizPerson id="20">
 <name>Dumas</name>
@@ -18,7 +19,8 @@
 <phone></phone>
 <location_id>1</location_id>
 <first_name>Dumas</first_name>
-<employe_number></employe_number>
+<employee_number></employee_number>
+<login_id></login_id>
 </bizPerson>
 <bizPerson id="7">
 <name>Hugo</name>
@@ -28,6 +30,7 @@
 <phone>33172382223</phone>
 <location_id>1</location_id>
 <first_name>Victor</first_name>
-<employe_number>e12345</employe_number>
+<employee_number>e12345</employee_number>
+<login_id></login_id>
 </bizPerson>
 </Set>

+ 13 - 0
setup/data/23.dimensions.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_Dimensions id="1">
+<name>organization</name>
+<description></description>
+<type>bizOrganization</type>
+</URP_Dimensions>
+<URP_Dimensions id="2">
+<name>site</name>
+<description></description>
+<type></type>
+</URP_Dimensions>
+</Set>

+ 11 - 0
setup/data/24.profiles.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_Profiles id="1">
+<name>Administrator</name>
+<description>Has the rights on everything (ignores the grant records)</description>
+</URP_Profiles>
+<URP_Profiles id="2">
+<name>Delivery Manager France</name>
+<description>Persons in charge of the operations for French customers</description>
+</URP_Profiles>
+</Set>

+ 555 - 0
setup/data/25.classprojection.xml

@@ -0,0 +1,555 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_ClassProjection id="1">
+<dimensionid>1</dimensionid>
+<class>bizOrganization</class>
+<value>&lt;this&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="2">
+<dimensionid>1</dimensionid>
+<class>logRealObject</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="3">
+<dimensionid>1</dimensionid>
+<class>bizContact</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="4">
+<dimensionid>1</dimensionid>
+<class>bizPerson</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="5">
+<dimensionid>1</dimensionid>
+<class>bizTeam</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="6">
+<dimensionid>1</dimensionid>
+<class>bizDocument</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="7">
+<dimensionid>1</dimensionid>
+<class>bizDocVersion</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="8">
+<dimensionid>1</dimensionid>
+<class>lnkDocumentRealObject</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="9">
+<dimensionid>1</dimensionid>
+<class>lnkContactRealObject</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="10">
+<dimensionid>1</dimensionid>
+<class>logInfra</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="11">
+<dimensionid>1</dimensionid>
+<class>bizLocation</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="12">
+<dimensionid>1</dimensionid>
+<class>bizCircuit</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="13">
+<dimensionid>1</dimensionid>
+<class>bizInterface</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="14">
+<dimensionid>1</dimensionid>
+<class>lnkInterfaces</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="15">
+<dimensionid>1</dimensionid>
+<class>bizDevice</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="16">
+<dimensionid>1</dimensionid>
+<class>bizPC</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="17">
+<dimensionid>1</dimensionid>
+<class>bizServer</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="18">
+<dimensionid>1</dimensionid>
+<class>bizNetworkDevice</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="19">
+<dimensionid>1</dimensionid>
+<class>bizInfraGroup</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="20">
+<dimensionid>1</dimensionid>
+<class>bizApplication</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="21">
+<dimensionid>1</dimensionid>
+<class>lnkInfraGrouping</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="22">
+<dimensionid>1</dimensionid>
+<class>lnkClientServer</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="23">
+<dimensionid>1</dimensionid>
+<class>bizPatch</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="24">
+<dimensionid>1</dimensionid>
+<class>bizIncidentTicket</class>
+<value>&lt;this&gt;</value>
+<attribute>customer_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="25">
+<dimensionid>1</dimensionid>
+<class>lnkRelatedTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="26">
+<dimensionid>1</dimensionid>
+<class>lnkInfraTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="27">
+<dimensionid>1</dimensionid>
+<class>lnkContactTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="28">
+<dimensionid>1</dimensionid>
+<class>bizWorkgroup</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="29">
+<dimensionid>1</dimensionid>
+<class>bizContract</class>
+<value>&lt;this&gt;</value>
+<attribute>org_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="30">
+<dimensionid>1</dimensionid>
+<class>lnkInfraContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="31">
+<dimensionid>1</dimensionid>
+<class>lnkContactContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="32">
+<dimensionid>1</dimensionid>
+<class>lnkDocumentContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="33">
+<dimensionid>1</dimensionid>
+<class>bizChangeTicket</class>
+<value>&lt;this&gt;</value>
+<attribute>customer_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="34">
+<dimensionid>1</dimensionid>
+<class>lnkInfraChangeTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="35">
+<dimensionid>1</dimensionid>
+<class>lnkContactChange</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="36">
+<dimensionid>1</dimensionid>
+<class>bizKnownError</class>
+<value>&lt;this&gt;</value>
+<attribute>cust_id</attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="37">
+<dimensionid>1</dimensionid>
+<class>lnkInfraError</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="38">
+<dimensionid>1</dimensionid>
+<class>lnkDocumentError</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="39">
+<dimensionid>1</dimensionid>
+<class>AuditCategory</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="40">
+<dimensionid>1</dimensionid>
+<class>AuditRule</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="41">
+<dimensionid>1</dimensionid>
+<class>menuNode</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="42">
+<dimensionid>1</dimensionid>
+<class>CMDBChange</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="43">
+<dimensionid>1</dimensionid>
+<class>CMDBChangeOp</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="44">
+<dimensionid>1</dimensionid>
+<class>CMDBChangeOpCreate</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="45">
+<dimensionid>1</dimensionid>
+<class>CMDBChangeOpDelete</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="46">
+<dimensionid>1</dimensionid>
+<class>CMDBChangeOpSetAttribute</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="47">
+<dimensionid>2</dimensionid>
+<class>bizOrganization</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="48">
+<dimensionid>2</dimensionid>
+<class>logRealObject</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="49">
+<dimensionid>2</dimensionid>
+<class>bizContact</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="50">
+<dimensionid>2</dimensionid>
+<class>bizPerson</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="51">
+<dimensionid>2</dimensionid>
+<class>bizTeam</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="52">
+<dimensionid>2</dimensionid>
+<class>bizDocument</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="53">
+<dimensionid>2</dimensionid>
+<class>bizDocVersion</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="54">
+<dimensionid>2</dimensionid>
+<class>lnkDocumentRealObject</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="55">
+<dimensionid>2</dimensionid>
+<class>lnkContactRealObject</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="56">
+<dimensionid>2</dimensionid>
+<class>logInfra</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="57">
+<dimensionid>2</dimensionid>
+<class>bizLocation</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="58">
+<dimensionid>2</dimensionid>
+<class>bizCircuit</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="59">
+<dimensionid>2</dimensionid>
+<class>bizInterface</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="60">
+<dimensionid>2</dimensionid>
+<class>lnkInterfaces</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="61">
+<dimensionid>2</dimensionid>
+<class>bizDevice</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="62">
+<dimensionid>2</dimensionid>
+<class>bizPC</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="63">
+<dimensionid>2</dimensionid>
+<class>bizServer</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="64">
+<dimensionid>2</dimensionid>
+<class>bizNetworkDevice</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="65">
+<dimensionid>2</dimensionid>
+<class>bizInfraGroup</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="66">
+<dimensionid>2</dimensionid>
+<class>bizApplication</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="67">
+<dimensionid>2</dimensionid>
+<class>lnkInfraGrouping</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="68">
+<dimensionid>2</dimensionid>
+<class>lnkClientServer</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="69">
+<dimensionid>2</dimensionid>
+<class>bizPatch</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="70">
+<dimensionid>2</dimensionid>
+<class>bizIncidentTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="71">
+<dimensionid>2</dimensionid>
+<class>lnkRelatedTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="72">
+<dimensionid>2</dimensionid>
+<class>lnkInfraTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="73">
+<dimensionid>2</dimensionid>
+<class>lnkContactTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="74">
+<dimensionid>2</dimensionid>
+<class>bizWorkgroup</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="75">
+<dimensionid>2</dimensionid>
+<class>bizContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="76">
+<dimensionid>2</dimensionid>
+<class>lnkInfraContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="77">
+<dimensionid>2</dimensionid>
+<class>lnkContactContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="78">
+<dimensionid>2</dimensionid>
+<class>lnkDocumentContract</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="79">
+<dimensionid>2</dimensionid>
+<class>bizChangeTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="80">
+<dimensionid>2</dimensionid>
+<class>lnkInfraChangeTicket</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="81">
+<dimensionid>2</dimensionid>
+<class>lnkContactChange</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="82">
+<dimensionid>2</dimensionid>
+<class>bizKnownError</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="83">
+<dimensionid>2</dimensionid>
+<class>lnkInfraError</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="84">
+<dimensionid>2</dimensionid>
+<class>lnkDocumentError</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="85">
+<dimensionid>2</dimensionid>
+<class>AuditCategory</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="86">
+<dimensionid>2</dimensionid>
+<class>AuditRule</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="87">
+<dimensionid>2</dimensionid>
+<class>menuNode</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="88">
+<dimensionid>2</dimensionid>
+<class>CMDBChange</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="89">
+<dimensionid>2</dimensionid>
+<class>CMDBChangeOp</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="90">
+<dimensionid>2</dimensionid>
+<class>CMDBChangeOpCreate</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="91">
+<dimensionid>2</dimensionid>
+<class>CMDBChangeOpDelete</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+<URP_ClassProjection id="92">
+<dimensionid>2</dimensionid>
+<class>CMDBChangeOpSetAttribute</class>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ClassProjection>
+</Set>

+ 15 - 0
setup/data/26.profileprojection.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_ProfileProjection id="1">
+<dimensionid>1</dimensionid>
+<profileid>2</profileid>
+<value>1;2</value>
+<attribute></attribute>
+</URP_ProfileProjection>
+<URP_ProfileProjection id="3">
+<dimensionid>2</dimensionid>
+<profileid>2</profileid>
+<value>&lt;any&gt;</value>
+<attribute></attribute>
+</URP_ProfileProjection>
+</Set>

+ 1659 - 0
setup/data/27.actiongrant.xml

@@ -0,0 +1,1659 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_ActionGrant id="1">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="2">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="3">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="4">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="5">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="6">
+<profileid>2</profileid>
+<class>bizOrganization</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="7">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="8">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="9">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="10">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="11">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="12">
+<profileid>2</profileid>
+<class>logRealObject</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="13">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="14">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="15">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="16">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="17">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="18">
+<profileid>2</profileid>
+<class>bizContact</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="19">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="20">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="21">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="22">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="23">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="24">
+<profileid>2</profileid>
+<class>bizPerson</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="25">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="26">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="27">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="28">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="29">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="30">
+<profileid>2</profileid>
+<class>bizTeam</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="31">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="32">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="33">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="34">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="35">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="36">
+<profileid>2</profileid>
+<class>bizDocument</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="37">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="38">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="39">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="40">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="41">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="42">
+<profileid>2</profileid>
+<class>bizDocVersion</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="43">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="44">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="45">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="46">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="47">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="48">
+<profileid>2</profileid>
+<class>lnkDocumentRealObject</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="49">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="50">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="51">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="52">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="53">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="54">
+<profileid>2</profileid>
+<class>lnkContactRealObject</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="55">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="56">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="57">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="58">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="59">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="60">
+<profileid>2</profileid>
+<class>logInfra</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="61">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="62">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="63">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="64">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="65">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="66">
+<profileid>2</profileid>
+<class>bizLocation</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="67">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="68">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="69">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="70">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="71">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="72">
+<profileid>2</profileid>
+<class>bizCircuit</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="73">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="74">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="75">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="76">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="77">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="78">
+<profileid>2</profileid>
+<class>bizInterface</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="79">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="80">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="81">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="82">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="83">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="84">
+<profileid>2</profileid>
+<class>lnkInterfaces</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="85">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="86">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="87">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="88">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="89">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="90">
+<profileid>2</profileid>
+<class>bizDevice</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="91">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="92">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="93">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="94">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="95">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="96">
+<profileid>2</profileid>
+<class>bizPC</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="97">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="98">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="99">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="100">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="101">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="102">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="103">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="104">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="105">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="106">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="107">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="108">
+<profileid>2</profileid>
+<class>bizNetworkDevice</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="109">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="110">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="111">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="112">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="113">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="114">
+<profileid>2</profileid>
+<class>bizInfraGroup</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="115">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="116">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="117">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="118">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="119">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="120">
+<profileid>2</profileid>
+<class>bizApplication</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="121">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="122">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="123">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="124">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="125">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="126">
+<profileid>2</profileid>
+<class>lnkInfraGrouping</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="127">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="128">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="129">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="130">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="131">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="132">
+<profileid>2</profileid>
+<class>lnkClientServer</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="133">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="134">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="135">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="136">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="137">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="138">
+<profileid>2</profileid>
+<class>bizPatch</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="139">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="140">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="141">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="142">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="143">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="144">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="145">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="146">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="147">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="148">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="149">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="150">
+<profileid>2</profileid>
+<class>lnkRelatedTicket</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="151">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="152">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="153">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="154">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="155">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="156">
+<profileid>2</profileid>
+<class>lnkInfraTicket</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="157">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="158">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="159">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="160">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="161">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="162">
+<profileid>2</profileid>
+<class>lnkContactTicket</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="163">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="164">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="165">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="166">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="167">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="168">
+<profileid>2</profileid>
+<class>bizWorkgroup</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="169">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="170">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="171">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="172">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="173">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="174">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="175">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="176">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="177">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="178">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="179">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="180">
+<profileid>2</profileid>
+<class>lnkInfraContract</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="181">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="182">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="183">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="184">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="185">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="186">
+<profileid>2</profileid>
+<class>lnkContactContract</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="187">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="188">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="189">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="190">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="191">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="192">
+<profileid>2</profileid>
+<class>lnkDocumentContract</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="193">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="194">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="195">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="196">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="197">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="198">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="199">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="200">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="201">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="202">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="203">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="204">
+<profileid>2</profileid>
+<class>lnkInfraChangeTicket</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="205">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="206">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="207">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="208">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="209">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="210">
+<profileid>2</profileid>
+<class>lnkContactChange</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="211">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="212">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="213">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="214">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="215">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="216">
+<profileid>2</profileid>
+<class>bizKnownError</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="217">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="218">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="219">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="220">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="221">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="222">
+<profileid>2</profileid>
+<class>lnkInfraError</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="223">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="224">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="225">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="226">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="227">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="228">
+<profileid>2</profileid>
+<class>lnkDocumentError</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="229">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="230">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="231">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="232">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="233">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="234">
+<profileid>2</profileid>
+<class>AuditCategory</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="235">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="236">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="237">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="238">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="239">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="240">
+<profileid>2</profileid>
+<class>AuditRule</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="241">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="242">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="243">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="244">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="245">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="246">
+<profileid>2</profileid>
+<class>menuNode</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="247">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="248">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="249">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="250">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="251">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="252">
+<profileid>2</profileid>
+<class>CMDBChange</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="253">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="254">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="255">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="256">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="257">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="258">
+<profileid>2</profileid>
+<class>CMDBChangeOp</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="259">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="260">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="261">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="262">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="263">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="264">
+<profileid>2</profileid>
+<class>CMDBChangeOpCreate</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="265">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="266">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="267">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="268">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="269">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="270">
+<profileid>2</profileid>
+<class>CMDBChangeOpDelete</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="271">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="272">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="273">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>delete</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="274">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>bulk read</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="275">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>bulk modify</action>
+</URP_ActionGrant>
+<URP_ActionGrant id="276">
+<profileid>2</profileid>
+<class>CMDBChangeOpSetAttribute</class>
+<permission>yes</permission>
+<action>bulk delete</action>
+</URP_ActionGrant>
+</Set>

+ 3 - 0
setup/data/28.attributegrant.xml

@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+</Set>

+ 189 - 0
setup/data/29.stimulusgrant.xml

@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<URP_StimulusGrant id="1">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_store</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="2">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_ship</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="3">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_plug</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="4">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_configuration_finished</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="5">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_val_failed</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="6">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_mtp</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="7">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_start_change</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="8">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_end_change</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="9">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_decommission</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="10">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_obsolete</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="11">
+<profileid>2</profileid>
+<class>bizServer</class>
+<permission>no</permission>
+<stimulus>ev_recycle</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="12">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<stimulus>ev_assign</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="13">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<stimulus>ev_reassign</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="14">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<stimulus>ev_start_working</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="15">
+<profileid>2</profileid>
+<class>bizIncidentTicket</class>
+<permission>no</permission>
+<stimulus>ev_close</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="16">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_freeze_version</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="17">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_sign</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="18">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_begin</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="19">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_notice</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="20">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_terminate</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="21">
+<profileid>2</profileid>
+<class>bizContract</class>
+<permission>no</permission>
+<stimulus>ev_elapsed</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="22">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<stimulus>ev_validate</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="23">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<stimulus>ev_reject</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="24">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<stimulus>ev_reopen</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="25">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<stimulus>ev_plan</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="26">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<stimulus>ev_approve</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="27">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<stimulus>ev_replan</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="28">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<stimulus>ev_notapprove</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="29">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<stimulus>ev_implement</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="30">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>no</permission>
+<stimulus>ev_monitor</stimulus>
+</URP_StimulusGrant>
+<URP_StimulusGrant id="31">
+<profileid>2</profileid>
+<class>bizChangeTicket</class>
+<permission>yes</permission>
+<stimulus>ev_finish</stimulus>
+</URP_StimulusGrant>
+</Set>

+ 31 - 22
setup/data/export.cmd

@@ -1,27 +1,36 @@
 SET WEBROOT=http://localhost:81
 SET USER=Erwan
 SET PWD=Taloc
+
 REM The order (numbering) of the files is important since
 REM it dictates the order to import them back
-wget --output-document=01.organizations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizOrganization&format=xml"
-wget --output-document=02.locations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizLocation&format=xml"
-wget --output-document=03.persons.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizPerson&format=xml"
-wget --output-document=04.teams.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizTeam&format=xml"
-wget --output-document=05.pcs.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizPC&format=xml"
-wget --output-document=06.servers.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizServer&format=xml"
-wget --output-document=07.applications.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizApplication&format=xml"
-wget --output-document=08.nw-devices.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizNetworkDevice&format=xml"
-wget --output-document=09.links_contacts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkContactRealObject&format=xml"
-wget --output-document=10.workgroups.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizWorkgroup&format=xml"
-wget --output-document=11.incidents.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizIncidentTicket&format=xml"
-wget --output-document=12.relatedtickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkRelatedTicket&format=xml"
-wget --output-document=13.infratickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkInfraTicket&format=xml"
-wget --output-document=14.contacttickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkContactTicket&format=xml"
-wget --output-document=15.changetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizChangeTicket&format=xml"
-wget --output-document=16.infrachangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkInfraChangeTicket&format=xml"
-wget --output-document=17.contactchangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkContactChange&format=xml"
-wget --output-document=18.contracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT bizContract&format=xml"
-wget --output-document=19.infracontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkInfraContract&format=xml"
-wget --output-document=20.contactcontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT lnkContactContract&format=xml"
-wget --output-document=21.auditcategories.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT AuditCategory&format=xml"
-wget --output-document=22.auditrules.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%WEBROOT%/pages/export.php?expression=SELECT AuditRule&format=xml"
+wget --output-document=01.organizations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizOrganization&format=xml"
+wget --output-document=02.locations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizLocation&format=xml"
+wget --output-document=03.persons.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizPerson&format=xml"
+wget --output-document=04.teams.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizTeam&format=xml"
+wget --output-document=05.pcs.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizPC&format=xml"
+wget --output-document=06.servers.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizServer&format=xml"
+wget --output-document=07.applications.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizApplication&format=xml"
+wget --output-document=08.nw-devices.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizNetworkDevice&format=xml"
+wget --output-document=09.links_contacts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactRealObject&format=xml"
+wget --output-document=10.workgroups.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizWorkgroup&format=xml"
+wget --output-document=11.incidents.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizIncidentTicket&format=xml"
+wget --output-document=12.relatedtickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkRelatedTicket&format=xml"
+wget --output-document=13.infratickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkInfraTicket&format=xml"
+wget --output-document=14.contacttickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactTicket&format=xml"
+wget --output-document=15.changetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizChangeTicket&format=xml"
+wget --output-document=16.infrachangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkInfraChangeTicket&format=xml"
+wget --output-document=17.contactchangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactChange&format=xml"
+wget --output-document=18.contracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizContract&format=xml"
+wget --output-document=19.infracontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkInfraContract&format=xml"
+wget --output-document=20.contactcontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactContract&format=xml"
+wget --output-document=21.auditcategories.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT AuditCategory&format=xml"
+wget --output-document=22.auditrules.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT AuditRule&format=xml"
+wget --output-document=23.dimensions.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_Dimensions&format=xml"
+wget --output-document=24.profiles.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_Profiles&format=xml"
+wget --output-document=25.classprojection.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_ClassProjection&format=xml"
+wget --output-document=26.profileprojection.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_ProfileProjection&format=xml"
+wget --output-document=27.actiongrant.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_ActionGrant&format=xml"
+wget --output-document=28.attributegrant.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_AttributeGrant&format=xml"
+wget --output-document=29.stimulusgrant.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT URP_StimulusGrant&format=xml"
+pause