mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 15:34:12 +01:00
1190 lines
44 KiB
XML
1190 lines
44 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.3">
|
|
<classes>
|
|
<class id="lnkActionNotificationToContact" _delta="define">
|
|
<parent>DBObject</parent>
|
|
<properties>
|
|
<is_link>1</is_link>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_lnk_action_notif_to_contact</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="action_id"/>
|
|
<attribute id="contact_id"/>
|
|
</attributes>
|
|
</naming>
|
|
<reconciliation>
|
|
<attributes>
|
|
<attribute id="action_id"/>
|
|
<attribute id="contact_id"/>
|
|
<attribute id="trigger_id"/>
|
|
</attributes>
|
|
</reconciliation>
|
|
<uniqueness_rules>
|
|
<rule>
|
|
<attributes>
|
|
<attribute id="action_id"/>
|
|
<attribute id="contact_id"/>
|
|
<attribute id="trigger_id"/>
|
|
</attributes>
|
|
<filter/>
|
|
<disabled>false</disabled>
|
|
<is_blocking>true</is_blocking>
|
|
</rule>
|
|
</uniqueness_rules>
|
|
</properties>
|
|
<fields>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<sql>action_id</sql>
|
|
<target_class>ActionNotification</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
<on_target_delete>DEL_AUTO</on_target_delete>
|
|
</field>
|
|
<field id="contact_id" xsi:type="AttributeExternalKey">
|
|
<sql>contact_id</sql>
|
|
<target_class>Contact</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
<on_target_delete>DEL_AUTO</on_target_delete>
|
|
</field>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<sql>trigger_id</sql>
|
|
<target_class>Trigger</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
<on_target_delete>DEL_AUTO</on_target_delete>
|
|
</field>
|
|
<field id="subscribed" xsi:type="AttributeBoolean">
|
|
<sql>subscribed</sql>
|
|
<default_value>true</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="col:col1">
|
|
<items>
|
|
<item id="action_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="trigger_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="subscribed">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<list>
|
|
<items>
|
|
<item id="action_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="trigger_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="subscribed">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
<default_search>
|
|
<items>
|
|
<item id="contact_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="action_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="trigger_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="subscribed">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</default_search>
|
|
</presentation>
|
|
<methods/>
|
|
</class>
|
|
<class id="ActionNewsroom" _delta="define">
|
|
<php_parent>
|
|
<name>ActionNotification</name>
|
|
</php_parent>
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb,application</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_action_newsroom</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="name"/>
|
|
</attributes>
|
|
<complementary_attributes>
|
|
<attribute id="finalclass"/>
|
|
<attribute id="description"/>
|
|
</complementary_attributes>
|
|
</naming>
|
|
<style>
|
|
<icon>../../images/icons/icons8-notification.svg</icon>
|
|
</style>
|
|
<reconciliation>
|
|
<attributes>
|
|
<attribute id="name"/>
|
|
</attributes>
|
|
</reconciliation>
|
|
</properties>
|
|
<fields>
|
|
<field id="title" xsi:type="AttributeString">
|
|
<sql>title</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="message" xsi:type="AttributeText">
|
|
<sql>message</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="icon" xsi:type="AttributeImage">
|
|
<sql>icon</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<display_max_width>96</display_max_width>
|
|
<display_max_height>96</display_max_height>
|
|
<storage_max_width>256</storage_max_width>
|
|
<storage_max_height>256</storage_max_height>
|
|
<default_image/>
|
|
</field>
|
|
<field id="priority" xsi:type="AttributeEnum">
|
|
<sql>priority</sql>
|
|
<values>
|
|
<value id="1">
|
|
<code>1</code>
|
|
</value>
|
|
<value id="2">
|
|
<code>2</code>
|
|
</value>
|
|
<value id="3">
|
|
<code>3</code>
|
|
</value>
|
|
<value id="4">
|
|
<code>4</code>
|
|
</value>
|
|
</values>
|
|
<default_value>4</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="test_recipient_id" xsi:type="AttributeExternalKey">
|
|
<sql>test_recipient_id</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<target_class>Person</target_class>
|
|
<on_target_delete>DEL_MANUAL</on_target_delete>
|
|
</field>
|
|
<field id="recipients" xsi:type="AttributeOQL">
|
|
<sql>recipients</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="url" xsi:type="AttributeString">
|
|
<sql>url</sql>
|
|
<default_value>$this->url()$</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="col:col1">
|
|
<items>
|
|
<item id="fieldset:ActionNewsroom:content">
|
|
<items>
|
|
<item id="name">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="description">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="language">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>60</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="fieldset:ActionNewsroom:trigger">
|
|
<items>
|
|
<item id="trigger_list">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="asynchronous">
|
|
<rank>20</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="col:col2">
|
|
<items>
|
|
<item id="fieldset:ActionNewsroom:settings">
|
|
<items>
|
|
<item id="priority">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="icon">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="test_recipient_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="recipients">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="url">
|
|
<rank>50</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<list>
|
|
<items>
|
|
<item id="title">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="description">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="language">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
</presentation>
|
|
<methods>
|
|
<method id="DoExecute">
|
|
<comment> /**
|
|
*
|
|
* Create EventNotificationNewsroom for each recipient
|
|
* @param $oTrigger
|
|
* @param $aContextArgs
|
|
*
|
|
* @return void
|
|
* @throws \ArchivedObjectException
|
|
* @throws \CoreCannotSaveObjectException
|
|
* @throws \CoreException
|
|
* @throws \CoreUnexpectedValue
|
|
* @throws \CoreWarning
|
|
* @throws \MySQLException
|
|
* @throws \OQLException
|
|
*/</comment>
|
|
<static>false</static>
|
|
<access>public</access>
|
|
<code><![CDATA[
|
|
public function DoExecute($oTrigger, $aContextArgs)
|
|
{
|
|
$aRecipientsIds = [];
|
|
$oPotentialRecipientsSearch = DBObjectSearch::FromOQL($this->Get('recipients'));
|
|
$oPotentialRecipientsSearch->AllowAllData();
|
|
$oPotentialRecipientsSet = new DBObjectSet($oPotentialRecipientsSearch, array(), $aContextArgs);
|
|
|
|
$bIsAsync = $this->IsAsynchronous();
|
|
[$sPreviousLanguage, $aPreviousPluginProperties] = $this->SetNotificationLanguage();
|
|
|
|
$sMessage = MetaModel::ApplyParams($this->Get('message'), $aContextArgs);
|
|
$sTitle = MetaModel::ApplyParams($this->Get('title'), $aContextArgs);
|
|
$sUrl = MetaModel::ApplyParams($this->Get('url'), $aContextArgs);
|
|
$iObjectId = 0;
|
|
$sObjectClass = null;
|
|
if (array_key_exists('this->object()', $aContextArgs)) {
|
|
$iObjectId = $aContextArgs['this->object()']->GetKey();
|
|
$sObjectClass = get_class($aContextArgs['this->object()']);
|
|
}
|
|
|
|
if ($this->IsBeingTested()) {
|
|
// If action is being tested, send notification to the test recipient only, no matter what (unsubscribed, disabled, no access to the backoffice, ...)
|
|
$iTestRecipientId = $this->Get('test_recipient_id');
|
|
if ($iTestRecipientId > 0) {
|
|
$aRecipientsIds[] = $iTestRecipientId;
|
|
}
|
|
} else {
|
|
// Otherwise, find the recipients to which we can actually send the notification among all the potential ones
|
|
while ($oPotentialRecipient = $oPotentialRecipientsSet->Fetch()) {
|
|
// Skip recipients that have no users
|
|
if ($oPotentialRecipient instanceof Person && UserRights::GetUserFromPerson($oPotentialRecipient, false) === null) {
|
|
continue;
|
|
}
|
|
|
|
// Skip potential recipient that have no user with access to the backoffice
|
|
$oPotentialRecipientUsersSearch = DBObjectSearch::FromOQL("SELECT User WHERE contactid = " . $oPotentialRecipient->GetKey() . " AND status = 'enabled'");
|
|
$oPotentialRecipientUsersSearch->AllowAllData();
|
|
$oPotentialRecipientUsersSet = new DBObjectSet($oPotentialRecipientUsersSearch);
|
|
$oPortalDispatcher = new PortalDispatcher('backoffice');
|
|
// - Check if the user has access to the backoffice
|
|
$bHasAccessToBackoffice = false;
|
|
while ($oPotentialRecipientUser = $oPotentialRecipientUsersSet->Fetch()) {
|
|
// Skip potential recipients with user that don't have access to the backoffice
|
|
if (false === $oPortalDispatcher->IsUserAllowed($oPotentialRecipientUser)) {
|
|
continue;
|
|
}
|
|
|
|
$bHasAccessToBackoffice = true;
|
|
break;
|
|
}
|
|
// - Skip it if necessary
|
|
if (false === $bHasAccessToBackoffice) {
|
|
continue;
|
|
}
|
|
|
|
// Skip potential recipients that have unsubscribed
|
|
if (!\Combodo\iTop\Service\Notification\NotificationsService::GetInstance()->IsSubscribed($oTrigger, $this, $oPotentialRecipient)) {
|
|
continue;
|
|
}
|
|
|
|
$aRecipientsIds[] = $oPotentialRecipient->GetKey();
|
|
|
|
// Register subscription even though the notification is not sent yet
|
|
\Combodo\iTop\Service\Notification\NotificationsService::GetInstance()->RegisterSubscription($oTrigger, $this, $oPotentialRecipient);
|
|
}
|
|
}
|
|
|
|
try {
|
|
if ($bIsAsync === true) {
|
|
AsyncSendNewsroom::AddToQueue($this->GetKey(), $oTrigger->GetKey(), $aRecipientsIds, $sMessage, $sTitle, $sUrl, $iObjectId, $sObjectClass);
|
|
} else {
|
|
foreach ($aRecipientsIds as $iRecipientId) {
|
|
$oEvent = Combodo\iTop\Service\Notification\Event\EventNotificationNewsroomService::MakeEventFromAction($this, $iRecipientId, $oTrigger->GetKey(), $sMessage, $sTitle, $sUrl, $iObjectId, $sObjectClass);
|
|
$oEvent->DBInsertNoReload();
|
|
}
|
|
}
|
|
} catch (CoreCannotSaveObjectException $e) {
|
|
ExceptionLog::LogException($e);
|
|
foreach($aRecipientsIds as $iRecipientId) {
|
|
$oEvent = Combodo\iTop\Service\Notification\Event\EventNotificationNewsroomService::MakeEventFromAction($this,
|
|
$iRecipientId,
|
|
$oTrigger->GetKey(),
|
|
Dict::S('Core:EventNotificationNewsroom:ErrorOnDBInsert'),
|
|
Dict::S('Core:EventNotificationNewsroom:ErrorNotificationNotSent'),
|
|
$sUrl,
|
|
$iObjectId,
|
|
$sObjectClass
|
|
);
|
|
$oEvent->DBInsertNoReload();
|
|
}
|
|
}
|
|
|
|
$this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null);
|
|
}
|
|
]]></code>
|
|
</method>
|
|
<method id="GetAsynchronousGlobalSetting">
|
|
<comment/>
|
|
<static>true</static>
|
|
<access>public</access>
|
|
<code><![CDATA[
|
|
public static function GetAsynchronousGlobalSetting(): bool
|
|
{
|
|
return utils::GetConfig()->Get('notifications.itop.send_asynchronously');
|
|
}
|
|
]]></code>
|
|
</method>
|
|
</methods>
|
|
</class>
|
|
<class id="EventNotificationNewsroom" _delta="define">
|
|
<php_parent>
|
|
<name>EventNotification</name>
|
|
</php_parent>
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_event_newsroom</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="title"/>
|
|
</attributes>
|
|
</naming>
|
|
<reconciliation>
|
|
<attributes>
|
|
<attribute id="title"/>
|
|
</attributes>
|
|
</reconciliation>
|
|
<order>
|
|
<columns>
|
|
<column id="date" ascending="false"/>
|
|
</columns>
|
|
</order>
|
|
</properties>
|
|
<fields>
|
|
<field id="title" xsi:type="AttributeString">
|
|
<sql>title</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="icon" xsi:type="AttributeImage">
|
|
<sql>icon</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<default_image/>
|
|
</field>
|
|
<field id="priority" xsi:type="AttributeEnum">
|
|
<sql>priority</sql>
|
|
<values>
|
|
<value id="1">
|
|
<code>1</code>
|
|
</value>
|
|
<value id="2">
|
|
<code>2</code>
|
|
</value>
|
|
<value id="3">
|
|
<code>3</code>
|
|
</value>
|
|
<value id="4">
|
|
<code>4</code>
|
|
</value>
|
|
</values>
|
|
<default_value>4</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="url" xsi:type="AttributeURL">
|
|
<sql>url</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
<target>_blank</target>
|
|
</field>
|
|
<field id="read" xsi:type="AttributeEnum">
|
|
<sql>read</sql>
|
|
<values>
|
|
<value id="yes">
|
|
<code>yes</code>
|
|
</value>
|
|
<value id="no">
|
|
<code>no</code>
|
|
</value>
|
|
</values>
|
|
<default_value>no</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="read_date" xsi:type="AttributeDateTime">
|
|
<sql>read_date</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="contact_id" xsi:type="AttributeExternalKey">
|
|
<sql>contact_id</sql>
|
|
<target_class>Contact</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="date">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="trigger_id">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="action_id">
|
|
<rank>60</rank>
|
|
</item>
|
|
<item id="read">
|
|
<rank>70</rank>
|
|
</item>
|
|
<item id="url">
|
|
<rank>80</rank>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<summary>
|
|
<items>
|
|
<item id="date">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>20</rank>
|
|
</item>
|
|
</items>
|
|
</summary>
|
|
<list>
|
|
<items>
|
|
<item id="date">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="read">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="read_date">
|
|
<rank>50</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
<default_search>
|
|
<items>
|
|
<item id="action_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="trigger_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="date">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</default_search>
|
|
</presentation>
|
|
<methods/>
|
|
</class>
|
|
</classes>
|
|
<user_rights>
|
|
<profiles>
|
|
<profile id="1024" _delta="define">
|
|
<name>REST Services User</name>
|
|
<description>Only users having this profile are allowed to use the REST Web Services (unless 'secure_rest_services' is set to false
|
|
in the configuration file).
|
|
</description>
|
|
<groups/>
|
|
</profile>
|
|
</profiles>
|
|
</user_rights>
|
|
<meta>
|
|
<classes>
|
|
<class id="User" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="contactid" xsi:type="AttributeExternalKey">
|
|
<target_class>Person</target_class>
|
|
</field>
|
|
<field id="last_name" xsi:type="AttributeExternalField"/>
|
|
<field id="first_name" xsi:type="AttributeExternalField"/>
|
|
<field id="email" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id" xsi:type="AttributeExternalField"/>
|
|
<field id="login" xsi:type="AttributeString"/>
|
|
<field id="language" xsi:type="AttributeApplicationLanguage"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="profile_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="allowed_org_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="contactid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="contactid_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_Profiles" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="user_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_UserProfile" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
<is_link>1</is_link>
|
|
</properties>
|
|
<fields>
|
|
<field id="userid" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="userlogin" xsi:type="AttributeExternalField"/>
|
|
<field id="profileid" xsi:type="AttributeExternalKey">
|
|
<target_class>URP_Profiles</target_class>
|
|
</field>
|
|
<field id="profile" xsi:type="AttributeExternalField"/>
|
|
<field id="reason" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="userid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="userid_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="profileid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_UserOrg" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="userid" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="userlogin" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Organization</target_class>
|
|
</field>
|
|
<field id="allowed_org_name" xsi:type="AttributeExternalField"/>
|
|
<field id="reason" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="userid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="userid_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Action" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="trigger_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Trigger" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="action_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="SynchroDataSource" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeText"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="user_id" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="notify_contact_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Contact</target_class>
|
|
</field>
|
|
<field id="scope_class" xsi:type="AttributeClass"/>
|
|
<field id="database_table_name" xsi:type="AttributeString"/>
|
|
<field id="scope_restriction" xsi:type="AttributeString"/>
|
|
<field id="full_load_periodicity" xsi:type="AttributeDuration"/>
|
|
<field id="reconciliation_policy" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_zero" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_one" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_multiple" xsi:type="AttributeEnum"/>
|
|
<field id="delete_policy" xsi:type="AttributeEnum"/>
|
|
<field id="delete_policy_update" xsi:type="AttributeString"/>
|
|
<field id="delete_policy_retention" xsi:type="AttributeDuration"/>
|
|
<field id="attribute_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="user_delete_policy" xsi:type="AttributeEnum"/>
|
|
<field id="url_icon" xsi:type="AttributeURL"/>
|
|
<field id="url_application" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="user_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="user_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="SynchroAttribute" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="sync_source_id" xsi:type="AttributeExternalKey">
|
|
<target_class>SynchroDataSource</target_class>
|
|
</field>
|
|
<field id="sync_source_name" xsi:type="AttributeExternalField"/>
|
|
<field id="attcode" xsi:type="AttributeString"/>
|
|
<field id="update" xsi:type="AttributeBoolean"/>
|
|
<field id="reconcile" xsi:type="AttributeBoolean"/>
|
|
<field id="update_policy" xsi:type="AttributeEnum"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="sync_source_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditRule" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="query" xsi:type="AttributeOQL"/>
|
|
<field id="valid_flag" xsi:type="AttributeEnum"/>
|
|
<field id="category_id" xsi:type="AttributeExternalKey">
|
|
<target_class>AuditCategory</target_class>
|
|
</field>
|
|
<field id="category_name" xsi:type="AttributeExternalField"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="category_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditCategory" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="definition_set" xsi:type="AttributeOQL"/>
|
|
<field id="rules_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditDomain" _delta="define">
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="icon" xsi:type="AttributeImage"/>
|
|
<field id="categories_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Query" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,application,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeText"/>
|
|
<field id="fields" xsi:type="AttributeText"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="lnkTriggerAction" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb,application</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Action</target_class>
|
|
</field>
|
|
<field id="action_name" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Trigger</target_class>
|
|
</field>
|
|
<field id="trigger_name" xsi:type="AttributeExternalField"/>
|
|
<field id="order" xsi:type="AttributeInteger"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="action_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="TagSetFieldData" _delta="define">
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>bizmodel</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="code" xsi:type="AttributeString"/>
|
|
<field id="label" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeHTML"/>
|
|
<field id="obj_class" xsi:type="AttributeString"/>
|
|
<field id="obj_attcode" xsi:type="AttributeString"/>
|
|
</fields>
|
|
</class>
|
|
<class id="DefaultWorkingTimeComputer" _delta="define">
|
|
<interfaces>
|
|
<interface id="iWorkingTimeComputer"/>
|
|
</interfaces>
|
|
</class>
|
|
<class id="ActionNotification" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>Action</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="trigger_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="language" xsi:type="AttributeApplicationLanguage"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Event" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>DBObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="message" xsi:type="AttributeText"/>
|
|
<field id="date" xsi:type="AttributeDateTime"/>
|
|
<field id="userinfo" xsi:type="AttributeString"/>
|
|
</fields>
|
|
</class>
|
|
<class id="EventNotification" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>Event</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="message" xsi:type="AttributeText"/>
|
|
<field id="date" xsi:type="AttributeDateTime"/>
|
|
<field id="userinfo" xsi:type="AttributeString"/>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Trigger</target_class>
|
|
</field>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Action</target_class>
|
|
</field>
|
|
<field id="object_id" xsi:type="AttributeInteger"/>
|
|
<field id="trigger_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
</classes>
|
|
<attribute_properties_definition _delta="define">
|
|
<properties>
|
|
<property id="sql">
|
|
<php_param>sql</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="linked_class">
|
|
<php_param>linked_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="ext_key_to_me">
|
|
<php_param>ext_key_to_me</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="ext_key_to_remote">
|
|
<php_param>ext_key_to_remote</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="sql">
|
|
<php_param>sql</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="class_attcode">
|
|
<php_param>class_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="extkey_attcode">
|
|
<php_param>extkey_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="target_attcode">
|
|
<php_param>target_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="item_code">
|
|
<php_param>item_code</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="relation_code">
|
|
<php_param>relation_code</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="from_class">
|
|
<php_param>from_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="neighbour_id">
|
|
<php_param>neighbour_id</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="enabled_mode">
|
|
<php_param>enabled_mode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="min_up_mode">
|
|
<php_param>min_up_mode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="min_up_type">
|
|
<php_param>min_up_type</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="handler_class">
|
|
<php_param>handler_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="class_field">
|
|
<php_param>class_field</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="query_field">
|
|
<php_param>query_field</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="display_style">
|
|
<php_param>display_style</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="target">
|
|
<php_param>target</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="default_value">
|
|
<php_param>default_value</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="attribute_definition_list">
|
|
<php_param>attribute_definition_list</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="attribute_definition_exclusion_list">
|
|
<php_param>attribute_definition_exclusion_list</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="class_exclusion_list">
|
|
<php_param>class_exclusion_list</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="min_up">
|
|
<php_param>min_up</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="count_min">
|
|
<php_param>count_min</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>0</default>
|
|
</property>
|
|
<property id="count_max">
|
|
<php_param>count_max</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>0</default>
|
|
</property>
|
|
<property id="max_combo_length">
|
|
<php_param>max_combo_length</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="min_autocomplete_chars">
|
|
<php_param>min_autocomplete_chars</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="display_max_width">
|
|
<php_param>display_max_width</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>128</default>
|
|
</property>
|
|
<property id="display_max_height">
|
|
<php_param>display_max_height</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>128</default>
|
|
</property>
|
|
<property id="storage_max_width">
|
|
<php_param>storage_max_width</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>256</default>
|
|
</property>
|
|
<property id="storage_max_height">
|
|
<php_param>storage_max_height</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>256</default>
|
|
</property>
|
|
<property id="max_items">
|
|
<php_param>max_items</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>12</default>
|
|
</property>
|
|
<property id="tag_code_max_len">
|
|
<php_param>tag_code_max_len</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>20</default>
|
|
</property>
|
|
<property id="enabled">
|
|
<php_param>enabled</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>boolean</type>
|
|
</property>
|
|
<property id="duplicates">
|
|
<php_param>duplicates</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="is_null_allowed">
|
|
<php_param>is_null_allowed</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="allow_target_creation">
|
|
<php_param>allow_target_creation</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
</property>
|
|
<property id="is_user_editable">
|
|
<php_param>is_user_editable</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>true</default>
|
|
</property>
|
|
<property id="with_php_constraint">
|
|
<php_param>with_php_constraint</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="with_php_computation">
|
|
<php_param>with_php_computation</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="create_temporary_object">
|
|
<php_param>create_temporary_object</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="on_target_delete">
|
|
<php_param>on_target_delete</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>php</type>
|
|
</property>
|
|
<property id="target_class">
|
|
<php_param>targetclass</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="goal">
|
|
<php_param>goal_computing</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default>'DefaultMetricComputer'</default>
|
|
</property>
|
|
<property id="working_time">
|
|
<php_param>working_time_computing</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
</properties>
|
|
</attribute_properties_definition>
|
|
</meta>
|
|
</itop_design>
|