/**
  * @param Partner $fromPartner
  * @param Partner $toPartner
  */
 protected function copyEventNotificationTemplates(Partner $fromPartner, Partner $toPartner, $permissionRequiredOnly = false)
 {
     $fromPartnerId = $fromPartner->getId();
     $toPartnerId = $toPartner->getId();
     KalturaLog::debug("Copy event-notification templates from [{$fromPartnerId}] to [{$toPartnerId}]");
     $c = new Criteria();
     $c->add(EventNotificationTemplatePeer::PARTNER_ID, $fromPartnerId);
     $systemNameCriteria = new Criteria();
     $systemNameCriteria->add(EventNotificationTemplatePeer::PARTNER_ID, $toPartnerId);
     $systemNameCriteria->add(EventNotificationTemplatePeer::STATUS, EventNotificationTemplateStatus::ACTIVE);
     $eventNotificationTemplates = EventNotificationTemplatePeer::doSelect($c);
     foreach ($eventNotificationTemplates as $eventNotificationTemplate) {
         /* @var $eventNotificationTemplate EventNotificationTemplate */
         if ($permissionRequiredOnly && !count($eventNotificationTemplate->getRequiredCopyTemplatePermissions())) {
             continue;
         }
         if (!myPartnerUtils::isPartnerPermittedForCopy($toPartner, $eventNotificationTemplate->getRequiredCopyTemplatePermissions())) {
             continue;
         }
         if ($eventNotificationTemplate->getSystemName()) {
             $c = clone $systemNameCriteria;
             $c->add(EventNotificationTemplatePeer::SYSTEM_NAME, $eventNotificationTemplate->getSystemName());
             if (EventNotificationTemplatePeer::doCount($c)) {
                 continue;
             }
         }
         $newEventNotificationTemplate = $eventNotificationTemplate->copy();
         $newEventNotificationTemplate->setPartnerId($toPartnerId);
         $newEventNotificationTemplate->save();
     }
 }
 /**
  * Action lists the template partner event notification templates.
  * @action listTemplates
  * 
  * @param KalturaEventNotificationTemplateFilter $filter
  * @param KalturaFilterPager $pager
  * @return KalturaEventNotificationTemplateListResponse
  */
 public function listTemplatesAction(KalturaEventNotificationTemplateFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaEventNotificationTemplateFilter();
     }
     if (!$pager) {
         $pager = new KalturaFilterPager();
     }
     $coreFilter = new EventNotificationTemplateFilter();
     $filter->toObject($coreFilter);
     $criteria = new Criteria();
     $coreFilter->attachToCriteria($criteria);
     $criteria->add(EventNotificationTemplatePeer::PARTNER_ID, PartnerPeer::GLOBAL_PARTNER);
     $count = EventNotificationTemplatePeer::doCount($criteria);
     $pager->attachToCriteria($criteria);
     $results = EventNotificationTemplatePeer::doSelect($criteria);
     $response = new KalturaEventNotificationTemplateListResponse();
     $response->objects = KalturaEventNotificationTemplateArray::fromDbArray($results, $this->getResponseProfile());
     $response->totalCount = $count;
     return $response;
 }
 /**
  * Retrieve event notification templates according to systemName
  * @param string $systemName
  * @param int $excludeId
  * @param PropelPDO $con
  * @return array<EventNotificationTemplate>
  */
 public static function retrieveBySystemName($systemName, $excludeId = null, PropelPDO $con = null)
 {
     $criteria = new Criteria(EventNotificationTemplatePeer::DATABASE_NAME);
     $criteria->add(EventNotificationTemplatePeer::STATUS, EventNotificationTemplateStatus::ACTIVE);
     $criteria->add(EventNotificationTemplatePeer::SYSTEM_NAME, $systemName);
     if ($excludeId) {
         $criteria->add(EventNotificationTemplatePeer::ID, $excludeId, Criteria::NOT_EQUAL);
     }
     $criteria->add(EventNotificationTemplatePeer::PARTNER_ID, kCurrentContext::getCurrentPartnerId());
     return EventNotificationTemplatePeer::doSelect($criteria);
 }
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(EventNotificationTemplatePeer::DATABASE_NAME);
         $criteria->add(EventNotificationTemplatePeer::ID, $pks, Criteria::IN);
         $objs = EventNotificationTemplatePeer::doSelect($criteria, $con);
     }
     return $objs;
 }
 /**
  * Retrieve event notification tamplates according to event and object type
  *
  * @param      int $eventType
  * @param      int $objectType
  * @param      int $partnerId use null to retrieve from shared partner only
  * @param      PropelPDO $con the connection to use
  * @return     array<EventNotificationTemplate>
  */
 public static function retrieveByEventType($eventType, $objectType, $partnerId = null, PropelPDO $con = null)
 {
     $criteria = new Criteria(EventNotificationTemplatePeer::DATABASE_NAME);
     $criteria->add(EventNotificationTemplatePeer::STATUS, EventNotificationTemplateStatus::ACTIVE);
     $criteria->add(EventNotificationTemplatePeer::EVENT_TYPE, $eventType);
     $criteria->add(EventNotificationTemplatePeer::OBJECT_TYPE, $objectType);
     if ($partnerId) {
         $criteria->add(EventNotificationTemplatePeer::PARTNER_ID, array(PartnerPeer::GLOBAL_PARTNER, $partnerId), Criteria::IN);
     } else {
         $criteria->add(EventNotificationTemplatePeer::PARTNER_ID, PartnerPeer::GLOBAL_PARTNER);
     }
     return EventNotificationTemplatePeer::doSelect($criteria, $con);
 }
$criteria->add(EventNotificationTemplatePeer::STATUS, EventNotificationTemplateStatus::DELETED, Criteria::NOT_EQUAL);
$criteria->add(EventNotificationTemplatePeer::SYSTEM_NAME, array('New_Item_Pending_Moderation', 'New_Item_Pending_Moderation_2', 'Entry_Was_Added_To_Channel'), Criteria::IN);
$criteria->addAscendingOrderByColumn(EventNotificationTemplatePeer::ID);
$criteria->setLimit(100);
$eventNotificationTemplates = EventNotificationTemplatePeer::doSelect($criteria);
$lastId = 0;
$count = 0;
while ($eventNotificationTemplates) {
    foreach ($eventNotificationTemplates as $eventNotificationTemplate) {
        /* @var $eventNotificationTemplate EmailNotificationTemplate */
        $lastId = $eventNotificationTemplate->getId();
        $categoryId = new kEvalStringField();
        $categoryId->setCode('$scope->getEvent()->getObject()->getCategoryId()');
        $categoryUserFilter = new categoryKuserFilter();
        if ($eventNotificationTemplate->getSystemName() == 'Entry_Was_Added_To_Channel') {
            $categoryUserFilter->set('_matchor_permission_names', 'CATEGORY_SUBSCRIBE');
        } else {
            $categoryUserFilter->set('_matchor_permission_names', 'CATEGORY_MODERATE');
        }
        $bcc = new kEmailNotificationCategoryRecipientProvider();
        $bcc->setCategoryId($categoryId);
        $bcc->setCategoryUserFilter($categoryUserFilter);
        $eventNotificationTemplate->setBcc($bcc);
        $eventNotificationTemplate->setTo(null);
        $eventNotificationTemplate->save();
        $count++;
    }
    $criteria->add(EventNotificationTemplatePeer::ID, $lastId, Criteria::GREATER_THAN);
    $eventNotificationTemplates = EventNotificationTemplatePeer::doSelect($criteria);
}
KalturaLog::log('Done: updated ' . $count . ' templates');