Snippets
Created by
Evgeniy Sokolov
last modified
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | <class id="lnkSecurityRoleBidirectional" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnksecurityrolebidirectional</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="left_securityrole_id"/>
<attribute id="right_securityrole_id"/>
</attributes>
</naming>
<display_template/>
<icon/>
<reconciliation>
<attributes>
<attribute id="left_securityrole_id"/>
<attribute id="right_securityrole_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="left_securityrole_id" xsi:type="AttributeExternalKey">
<sql>left_securityrole_id</sql>
<target_class>SecurityRole</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="left_securityrole_name" xsi:type="AttributeExternalField">
<extkey_attcode>left_securityrole_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="right_securityrole_id" xsi:type="AttributeExternalKey">
<sql>right_securityrole_id</sql>
<target_class>SecurityRole</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="right_securityrole_name" xsi:type="AttributeExternalField">
<extkey_attcode>right_securityrole_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods>
<method id="DBInsert">
<comment>/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/</comment>
<static>false</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[ public function DBInsert(){
$this->DBInsertNoReload();
$this->Reload();
$oMyClone = clone $this;
$mem_left = $oMyClone->Get('left_securityrole_id');
$mem_right = $oMyClone->Get('right_securityrole_id');
$oMyClone->Set('left_securityrole_id',$mem_right);
$oMyClone->Set('right_securityrole_id',$mem_left);
$oMyClone->DBInsertNoReload();
$oMyClone->Reload();
return $this->m_iKey;
} ]]></code>
</method>
<method id="AfterDelete">
<comment>/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/</comment>
<static>false</static>
<access>protected</access>
<type>Overload-DBObject</type>
<code><![CDATA[ protected function AfterDelete(){
$mem_left = $this->Get('right_securityrole_id');
$mem_right = $this->Get('left_securityrole_id');
$oObjectSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT lnkSecurityRoleBidirectional WHERE left_securityrole_id='$mem_left' AND right_securityrole_id='$mem_right'"));
$oObjectSet->Seek(0);
while ($oObject = $oObjectSet->Fetch())
{
$oObject->DBDeleteSingleObject();
}
return;
} ]]></code>
</method>
</methods>
<presentation>
<details>
<items>
<item id="left_securityrole_id">
<rank>10</rank>
</item>
<item id="right_securityrole_id">
<rank>20</rank>
</item>
</items>
</details>
<search>
<items>
<item id="left_securityrole_id">
<rank>10</rank>
</item>
<item id="right_securityrole_id">
<rank>20</rank>
</item>
</items>
</search>
<list>
<items>
<item id="left_securityrole_id">
<rank>10</rank>
</item>
<item id="right_securityrole_id">
<rank>20</rank>
</item>
</items>
</list>
</presentation>
</class>
|
Comments (0)
You can clone a snippet to your computer for local editing. Learn more.