/** * 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(); } } }
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); } } } }
/** * 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; }
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); }