public function init()
 {
     $metadata = Conversation::getMetadata();
     $observedModelClassNames = $metadata['Conversation']['conversationItemsModelClassNames'];
     if ($observedModelClassNames == null) {
         return;
     }
     foreach ($observedModelClassNames as $modelClassName) {
         $modelClassName::model()->attachEventHandler('onAfterDelete', array($this, 'deleteConversationItems'));
     }
 }
 /**
  * Runs through relations and makes sure the user can access at least one relation. If at least one is
  * accessible, true is returned.
  */
 public function canUserPerformAction()
 {
     $metadata = Conversation::getMetadata();
     foreach ($metadata['Conversation']['conversationItemsModelClassNames'] as $modelClassName) {
         if (is_subclass_of($modelClassName, 'Item') && $modelClassName::getModuleClassName() != null) {
             if (RightsUtil::canUserAccessModule($modelClassName::getModuleClassName(), $this->user)) {
             }
             return true;
         }
     }
     return false;
 }
 /**
  * Override to handle the special scenario of relations for a conversation. Since relations are done in the
  * ConversationItems, the relation information needs to handled in a specific way.
  * @see ZurmoModuleController->resolveNewModelByRelationInformation
  */
 protected function resolveNewModelByRelationInformation($model, $relationModelClassName, $relationModelId, $relationModuleId)
 {
     assert('$model instanceof Conversation');
     assert('is_string($relationModelClassName) || null');
     assert('is_int($relationModelId)');
     assert('is_string($relationModuleId)');
     $metadata = Conversation::getMetadata();
     if (in_array($relationModelClassName, $metadata['Conversation']['conversationItemsModelClassNames'])) {
         $model->conversationItems->add($relationModelClassName::getById((int) $relationModelId));
     } else {
         throw new NotSupportedException();
     }
     return $model;
 }
 protected static function getRelatedItemsModelClassNames()
 {
     $metadata = Conversation::getMetadata();
     return $metadata['Conversation']['conversationItemsModelClassNames'];
 }
 public function __construct($relationModel)
 {
     $metadata = Conversation::getMetadata();
     assert('in_array(get_class($relationModel), $metadata["Conversation"]["conversationItemsModelClassNames"])');
     parent::__construct($relationModel);
 }