mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
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
SVN:trunk[93]
This commit is contained in:
@@ -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 = '';
|
||||
}
|
||||
if ($bIsOql)
|
||||
else
|
||||
{
|
||||
// Evaluate wether it is a constant or not
|
||||
try
|
||||
{
|
||||
$oObjectSearch = DBObjectSearch::FromOQL($sExpression);
|
||||
|
||||
$sTargetClass = $oObjectSearch->GetClass();
|
||||
}
|
||||
catch (OqlException $e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
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,17 +262,30 @@ 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');
|
||||
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_values($aValues);
|
||||
}
|
||||
elseif ($sExpr == '<any>')
|
||||
{
|
||||
$aRes = null;
|
||||
$aRes = array_keys($aValues);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
setup/data/23.dimensions.xml
Normal file
13
setup/data/23.dimensions.xml
Normal file
@@ -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
setup/data/24.profiles.xml
Normal file
11
setup/data/24.profiles.xml
Normal file
@@ -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
setup/data/25.classprojection.xml
Normal file
555
setup/data/25.classprojection.xml
Normal file
@@ -0,0 +1,555 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Set>
|
||||
<URP_ClassProjection id="1">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizOrganization</class>
|
||||
<value><this></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="2">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>logRealObject</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="3">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizContact</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="4">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizPerson</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="5">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizTeam</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="6">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizDocument</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="7">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizDocVersion</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="8">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkDocumentRealObject</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="9">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkContactRealObject</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="10">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>logInfra</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="11">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizLocation</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="12">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizCircuit</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="13">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizInterface</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="14">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInterfaces</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="15">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizDevice</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="16">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizPC</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="17">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizServer</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="18">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizNetworkDevice</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="19">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizInfraGroup</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="20">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizApplication</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="21">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInfraGrouping</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="22">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkClientServer</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="23">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizPatch</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="24">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizIncidentTicket</class>
|
||||
<value><this></value>
|
||||
<attribute>customer_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="25">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkRelatedTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="26">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInfraTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="27">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkContactTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="28">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizWorkgroup</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="29">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizContract</class>
|
||||
<value><this></value>
|
||||
<attribute>org_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="30">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInfraContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="31">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkContactContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="32">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkDocumentContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="33">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizChangeTicket</class>
|
||||
<value><this></value>
|
||||
<attribute>customer_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="34">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInfraChangeTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="35">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkContactChange</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="36">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>bizKnownError</class>
|
||||
<value><this></value>
|
||||
<attribute>cust_id</attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="37">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkInfraError</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="38">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>lnkDocumentError</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="39">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>AuditCategory</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="40">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>AuditRule</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="41">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>menuNode</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="42">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>CMDBChange</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="43">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>CMDBChangeOp</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="44">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>CMDBChangeOpCreate</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="45">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>CMDBChangeOpDelete</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="46">
|
||||
<dimensionid>1</dimensionid>
|
||||
<class>CMDBChangeOpSetAttribute</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="47">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizOrganization</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="48">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>logRealObject</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="49">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizContact</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="50">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizPerson</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="51">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizTeam</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="52">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizDocument</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="53">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizDocVersion</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="54">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkDocumentRealObject</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="55">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkContactRealObject</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="56">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>logInfra</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="57">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizLocation</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="58">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizCircuit</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="59">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizInterface</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="60">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInterfaces</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="61">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizDevice</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="62">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizPC</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="63">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizServer</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="64">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizNetworkDevice</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="65">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizInfraGroup</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="66">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizApplication</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="67">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInfraGrouping</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="68">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkClientServer</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="69">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizPatch</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="70">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizIncidentTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="71">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkRelatedTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="72">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInfraTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="73">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkContactTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="74">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizWorkgroup</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="75">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="76">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInfraContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="77">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkContactContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="78">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkDocumentContract</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="79">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizChangeTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="80">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInfraChangeTicket</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="81">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkContactChange</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="82">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>bizKnownError</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="83">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkInfraError</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="84">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>lnkDocumentError</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="85">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>AuditCategory</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="86">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>AuditRule</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="87">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>menuNode</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="88">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>CMDBChange</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="89">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>CMDBChangeOp</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="90">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>CMDBChangeOpCreate</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="91">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>CMDBChangeOpDelete</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
<URP_ClassProjection id="92">
|
||||
<dimensionid>2</dimensionid>
|
||||
<class>CMDBChangeOpSetAttribute</class>
|
||||
<value><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ClassProjection>
|
||||
</Set>
|
||||
15
setup/data/26.profileprojection.xml
Normal file
15
setup/data/26.profileprojection.xml
Normal file
@@ -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><any></value>
|
||||
<attribute></attribute>
|
||||
</URP_ProfileProjection>
|
||||
</Set>
|
||||
1659
setup/data/27.actiongrant.xml
Normal file
1659
setup/data/27.actiongrant.xml
Normal file
File diff suppressed because it is too large
Load Diff
3
setup/data/28.attributegrant.xml
Normal file
3
setup/data/28.attributegrant.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Set>
|
||||
</Set>
|
||||
189
setup/data/29.stimulusgrant.xml
Normal file
189
setup/data/29.stimulusgrant.xml
Normal file
@@ -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>
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user