-<class id="lnkSecurityRoleBidirectional" _delta="define">
- <parent>cmdbAbstractObject</parent>
- <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/>
- <attribute id="left_securityrole_id"/>
- <attribute id="right_securityrole_id"/>
- <attribute id="left_securityrole_id"/>
- <attribute id="right_securityrole_id"/>
- <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 id="left_securityrole_name" xsi:type="AttributeExternalField">
- <extkey_attcode>left_securityrole_id</extkey_attcode>
- <target_attcode>name</target_attcode>
- <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 id="right_securityrole_name" xsi:type="AttributeExternalField">
- <extkey_attcode>right_securityrole_id</extkey_attcode>
- <target_attcode>name</target_attcode>
- * Placeholder for backward compatibility (iTop <= 2.1.0)
- * in case an extension attempts to redefine this function...
- <access>public</access>
- <type>Overload-DBObject</type>
- <code><![CDATA[ public function DBInsert(){
- $this->DBInsertNoReload();
- $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();
- <method id="AfterDelete">
- * Placeholder for backward compatibility (iTop <= 2.1.0)
- * in case an extension attempts to redefine this function...
- <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'"));
- while ($oObject = $oObjectSet->Fetch())
- $oObject->DBDeleteSingleObject();
- <item id="left_securityrole_id">
- <item id="right_securityrole_id">
- <item id="left_securityrole_id">
- <item id="right_securityrole_id">
- <item id="left_securityrole_id">
- <item id="right_securityrole_id">