소스 검색

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