public function save(PropelPDO $con = null) { if ($this->isColumnModified(accessControlPeer::DELETED_AT)) { if ($this->isDefault === true) { throw new Exception("Default access control profile can't be deleted"); } $c = new Criteria(); $c->add(entryPeer::ACCESS_CONTROL_ID, $this->getId()); $entryCount = entryPeer::doCount($c); if ($entryCount > 0) { throw new Exception("Access control profile is linked with entries and can't be deleted"); } } if ($this->isNew()) { $c = new Criteria(); $c->add(accessControlPeer::PARTNER_ID, $this->partner_id); $count = accessControlPeer::doCount($c); if ($count >= Partner::MAX_ACCESS_CONTROLS) { throw new kCoreException("Max number of access control profiles was reached", kCoreException::MAX_NUMBER_OF_ACCESS_CONTROLS_REACHED); } } parent::save($con); // set this conversion profile as partners default $partner = PartnerPeer::retrieveByPK($this->partner_id); if ($partner && $this->isDefault === true) { $partner->setDefaultAccessControlId($this->getId()); $partner->save(); } }
public function preInsert(PropelPDO $con = null) { $c = new Criteria(); $c->add(accessControlPeer::PARTNER_ID, $this->getPartnerId()); $count = accessControlPeer::doCount($c); $partner = PartnerPeer::retrieveByPK($this->getPartnerId()); $maxAccessControls = $partner->getAccessControls(); if ($count >= $maxAccessControls) { throw new kCoreException("Max number of access control profiles [{$maxAccessControls}] was reached", kCoreException::MAX_NUMBER_OF_ACCESS_CONTROLS_REACHED, $maxAccessControls); } return parent::preInsert($con); }
public function getListResponse(KalturaFilterPager $pager, KalturaDetachedResponseProfile $responseProfile = null) { $accessControlFilter = $this->toObject(); $c = new Criteria(); $accessControlFilter->attachToCriteria($c); $totalCount = accessControlPeer::doCount($c); $pager->attachToCriteria($c); $dbList = accessControlPeer::doSelect($c); $list = KalturaAccessControlArray::fromDbArray($dbList, $responseProfile); $response = new KalturaAccessControlListResponse(); $response->objects = $list; $response->totalCount = $totalCount; return $response; }
public function validateForUpdate($sourceObject, $propertiesToSkip = array()) { /* @var $sourceObject accessControl */ $this->validatePropertyMinMaxLength('name', 1, 128, true); $this->validate(); if ($this->systemName) { $c = KalturaCriteria::create(accessControlPeer::OM_CLASS); $c->add(accessControlPeer::ID, $sourceObject->getId(), Criteria::NOT_EQUAL); $c->add(accessControlPeer::SYSTEM_NAME, $this->systemName); if (accessControlPeer::doCount($c)) { throw new KalturaAPIException(KalturaErrors::SYSTEM_NAME_ALREADY_EXISTS, $this->systemName); } } return parent::validateForUpdate($sourceObject, $propertiesToSkip); }
/** * List Access Control Profiles by filter and pager * * @action list * @param KalturaFilterPager $filter * @param KalturaAccessControlFilter $pager * @return KalturaAccessControlListResponse */ function listAction(KalturaAccessControlFilter $filter = null, KalturaFilterPager $pager = null) { if (!$filter) { $filter = new KalturaAccessControlFilter(); } if (!$pager) { $pager = new KalturaFilterPager(); } $accessControlFilter = new accessControlFilter(); $filter->toObject($accessControlFilter); $c = new Criteria(); $accessControlFilter->attachToCriteria($c); $totalCount = accessControlPeer::doCount($c); $pager->attachToCriteria($c); $dbList = accessControlPeer::doSelect($c); $list = KalturaAccessControlArray::fromDbArray($dbList); $response = new KalturaAccessControlListResponse(); $response->objects = $list; $response->totalCount = $totalCount; return $response; }
/** * Validate the amount of core and plugin objects found on the template partner. * @param Partner $templatePartner */ private function validateTemplatePartner(Partner $templatePartner) { //access control profiles $c = new Criteria(); $c->add(accessControlPeer::PARTNER_ID, $templatePartner->getId()); $count = accessControlPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_ac_profiles')) { throw new kCoreException("Template partner's number of [accessControlProfiles] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //categories categoryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(categoryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(categoryPeer::STATUS, CategoryStatus::ACTIVE); $count = categoryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_categories')) { throw new kCoreException("Template partner's number of [category] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } categoryPeer::setUseCriteriaFilter(true); //conversion profiles $c = new Criteria(); $c->add(conversionProfile2Peer::PARTNER_ID, $templatePartner->getId()); $count = conversionProfile2Peer::doCount($c); if ($count > kConf::get('copy_partner_limit_conversion_profiles')) { throw new kCoreException("Template partner's number of [conversionProfile] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //entries entryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(entryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); $c->addAnd(entryPeer::STATUS, entryStatus::READY); $count = entryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_entries')) { throw new kCoreException("Template partner's number of MEDIA_CLIP objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } entryPeer::setUseCriteriaFilter(true); //playlists entryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(entryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(entryPeer::TYPE, entryType::PLAYLIST); $c->addAnd(entryPeer::STATUS, entryStatus::READY); $count = entryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_playlists')) { throw new kCoreException("Template partner's number of PLAYLIST objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } entryPeer::setUseCriteriaFilter(true); //flavor params $c = new Criteria(); $c->add(assetParamsPeer::PARTNER_ID, $templatePartner->getId()); $count = assetParamsPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_flavor_params')) { throw new kCoreException("Template partner's number of [flavorParams] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //uiconfs uiConfPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(uiConfPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(uiConfPeer::OBJ_TYPE, array(uiConf::UI_CONF_TYPE_KDP3, uiConf::UI_CONF_TYPE_WIDGET), Criteria::IN); $c->addAnd(uiConfPeer::STATUS, uiConf::UI_CONF_STATUS_READY); $count = uiConfPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_ui_confs')) { throw new kCoreException("Template partner's number of [uiconf] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } uiConfPeer::setUseCriteriaFilter(true); //user roles UserRolePeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, $templatePartner->getId(), Criteria::EQUAL); $c->addAnd(UserRolePeer::STATUS, UserRoleStatus::ACTIVE, Criteria::EQUAL); $count = UserRolePeer::doCount($c); if ($count > kConf::get('copy_partner_limit_user_roles')) { throw new kCoreException("Template partner's number of [userRole] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } UserRolePeer::setUseCriteriaFilter(true); $validatorPlugins = KalturaPluginManager::getPluginInstances('IKalturaObjectValidator'); foreach ($validatorPlugins as $validatorPlugins) { $validatorPlugins->validateObject($templatePartner, IKalturaObjectValidator::OPERATION_COPY); } }