public function DoCheckToWrite()
 {
     parent::DoCheckToWrite();
     // Plugins
     //
     foreach (MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance) {
         $aNewIssues = $oExtensionInstance->OnCheckToWrite($this);
         if (count($aNewIssues) > 0) {
             $this->m_aCheckIssues = array_merge($this->m_aCheckIssues, $aNewIssues);
         }
     }
     // User rights
     //
     $aChanges = $this->ListChanges();
     if (count($aChanges) > 0) {
         $aForbiddenFields = array();
         foreach ($this->ListChanges() as $sAttCode => $value) {
             $bUpdateAllowed = UserRights::IsActionAllowedOnAttribute(get_class($this), $sAttCode, UR_ACTION_MODIFY, DBObjectSet::FromObject($this));
             if (!$bUpdateAllowed) {
                 $oAttCode = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
                 $aForbiddenFields[] = $oAttCode->GetLabel();
             }
         }
         if (count($aForbiddenFields) > 0) {
             // Security issue
             $this->m_bSecurityIssue = true;
             $this->m_aCheckIssues[] = Dict::Format('UI:Delete:NotAllowedToUpdate_Fields', implode(', ', $aForbiddenFields));
         }
     }
 }