/**
  * List metadata profile objects by filter and pager
  * 
  * @action list
  * @param KalturaMetadataProfileFilter $filter
  * @param KalturaFilterPager $pager
  * @return KalturaMetadataProfileListResponse
  */
 function listAction(KalturaMetadataProfileFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaMetadataProfileFilter();
     }
     $metadataProfileFilter = new MetadataProfileFilter();
     $filter->toObject($metadataProfileFilter);
     $c = new Criteria();
     $metadataProfileFilter->attachToCriteria($c);
     $count = MetadataProfilePeer::doCount($c);
     if ($pager) {
         $pager->attachToCriteria($c);
     }
     $list = MetadataProfilePeer::doSelect($c);
     $response = new KalturaMetadataProfileListResponse();
     $response->objects = KalturaMetadataProfileArray::fromMetadataProfileArray($list);
     $response->totalCount = $count;
     return $response;
 }
 /**
  * @param Partner $fromPartner
  * @param Partner $toPartner
  */
 protected function copyMetadataProfiles(Partner $fromPartner, Partner $toPartner, $permissionRequiredOnly = false)
 {
     $fromPartnerId = $fromPartner->getId();
     $toPartnerId = $toPartner->getId();
     KalturaLog::debug("Copy metadata profiles from [{$fromPartnerId}] to [{$toPartnerId}]");
     $c = new Criteria();
     $c->add(MetadataProfilePeer::PARTNER_ID, $fromPartnerId);
     $systemNameCriteria = new Criteria();
     $systemNameCriteria->add(MetadataProfilePeer::PARTNER_ID, $toPartnerId);
     $systemNameCriteria->add(MetadataProfilePeer::STATUS, MetadataProfile::STATUS_ACTIVE);
     $metadataProfiles = MetadataProfilePeer::doSelect($c);
     foreach ($metadataProfiles as $metadataProfile) {
         /* @var $metadataProfile MetadataProfile */
         if ($permissionRequiredOnly && !count($metadataProfile->getRequiredCopyTemplatePermissions())) {
             continue;
         }
         if (!myPartnerUtils::isPartnerPermittedForCopy($toPartner, $metadataProfile->getRequiredCopyTemplatePermissions())) {
             continue;
         }
         if ($metadataProfile->getSystemName()) {
             $c = clone $systemNameCriteria;
             $c->add(MetadataProfilePeer::SYSTEM_NAME, $metadataProfile->getSystemName());
             if (MetadataProfilePeer::doCount($c)) {
                 continue;
             }
         }
         $newMetadataProfile = $metadataProfile->copy();
         $newMetadataProfile->setPartnerId($toPartnerId);
         $newMetadataProfile->save();
         kFileSyncUtils::createSyncFileLinkForKey($newMetadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_DEFINITION), $metadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_DEFINITION));
         kFileSyncUtils::createSyncFileLinkForKey($newMetadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_VIEWS), $metadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_VIEWS));
         kFileSyncUtils::createSyncFileLinkForKey($newMetadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_XSLT), $metadataProfile->getSyncKey(MetadataProfile::FILE_SYNC_METADATA_XSLT));
         $metadataProfileFields = MetadataProfileFieldPeer::retrieveByMetadataProfileId($metadataProfile->getId());
         foreach ($metadataProfileFields as $metadataProfileField) {
             $newMetadataProfileField = $metadataProfileField->copy();
             $newMetadataProfileField->setMetadataProfileId($newMetadataProfile->getId());
             $newMetadataProfileField->setPartnerId($toPartnerId);
             $newMetadataProfileField->save();
         }
     }
 }
Esempio n. 3
0
 public static function validateObject(BaseObject $object, $operation)
 {
     if ($operation == IKalturaObjectValidator::OPERATION_COPY) {
         if ($object instanceof Partner) {
             $c = new Criteria();
             $c->add(MetadataProfilePeer::PARTNER_ID, $object->getId());
             $count = MetadataProfilePeer::doCount($c);
             if ($count > kConf::get('copy_partner_limit_metadata_profiles')) {
                 throw new kCoreException("Template partner's number of [metadataProfile] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED);
             }
         }
     }
 }
Esempio n. 4
0
 /**
  * List metadata profile objects by filter and pager
  *
  * @action list
  * @param KalturaMetadataProfileFilter $filter
  * @param KalturaFilterPager $pager
  * @return KalturaMetadataProfileListResponse
  */
 function listAction(KalturaMetadataProfileFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaMetadataProfileFilter();
     }
     $metadataProfileFilter = new MetadataProfileFilter();
     $filter->toObject($metadataProfileFilter);
     if (isset($filter->systemNameEqual) || isset($filter->systemNameIn) || isset($filter->idEqual)) {
         $this->partnerGroup .= ",0";
     }
     $this->applyPartnerFilterForClass('MetadataProfile');
     $c = new Criteria();
     $metadataProfileFilter->attachToCriteria($c);
     $count = MetadataProfilePeer::doCount($c);
     if (!$pager) {
         $pager = new KalturaFilterPager();
     }
     $pager->attachToCriteria($c);
     $list = MetadataProfilePeer::doSelect($c);
     $response = new KalturaMetadataProfileListResponse();
     $response->objects = KalturaMetadataProfileArray::fromDbArray($list, $this->getResponseProfile());
     $response->totalCount = $count;
     return $response;
 }
Esempio n. 5
0
 public function validateForUpdate($sourceObject, $propertiesToSkip = array())
 {
     if (!is_null($this->name)) {
         $this->validatePropertyMinLength("name", 1);
     }
     if ($this->systemName) {
         $c = KalturaCriteria::create(MetadataProfilePeer::OM_CLASS);
         $c->add(MetadataProfilePeer::ID, $sourceObject->getId(), Criteria::NOT_EQUAL);
         $c->add(MetadataProfilePeer::SYSTEM_NAME, $this->systemName);
         if (MetadataProfilePeer::doCount($c)) {
             throw new KalturaAPIException(KalturaErrors::SYSTEM_NAME_ALREADY_EXISTS, $this->systemName);
         }
     }
     return parent::validateForUpdate($sourceObject);
 }