public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('viewRenderer')->setNoRender();
     $providerId = $this->_getParam('provider_id');
     $client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     try {
         $contentDistributionPlugin->genericDistributionProvider->delete($providerId);
         echo $action->getHelper('json')->sendJson('ok', false);
     } catch (Exception $e) {
         KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString());
         echo $action->getHelper('json')->sendJson($e->getMessage(), false);
     }
 }
 public function getDataArray($entryId, $partnerId)
 {
     $client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     $fileSyncPlugin = Kaltura_Client_FileSync_Plugin::get($client);
     if (!$client) {
         $errors[] = 'init client failed';
         return;
     }
     $filter = new Kaltura_Client_ContentDistribution_Type_EntryDistributionFilter();
     $filter->entryIdEqual = $entryId;
     $distributions = array();
     $distributionFileSyncs = array();
     $errDescription = null;
     try {
         Infra_ClientHelper::impersonate($partnerId);
         $entryDistributionList = $contentDistributionPlugin->entryDistribution->listAction($filter);
         Infra_ClientHelper::unimpersonate();
         $distributions = $entryDistributionList->objects;
     } catch (Exception $e) {
         $errDescription = $e->getMessage();
     }
     $distributionIds = array();
     if (is_array($distributions)) {
         foreach ($distributions as $distribution) {
             $distributionFileSyncs[$distribution->id] = array();
             $distributionIds[] = $distribution->id;
         }
     }
     if (count($distributionIds)) {
         try {
             $filter = new Kaltura_Client_FileSync_Type_FileSyncFilter();
             $filter->fileObjectTypeEqual = Kaltura_Client_Enum_FileSyncObjectType::ENTRY_DISTRIBUTION;
             $filter->objectIdIn = implode(',', $distributionIds);
             $pager = new Kaltura_Client_Type_FilterPager();
             $pager->pageSize = 100;
             $fileSyncList = $fileSyncPlugin->fileSync->listAction($filter, $pager);
             $fileSyncs = $fileSyncList->objects;
             foreach ($fileSyncs as $fileSync) {
                 $distributionFileSyncs[$fileSync->objectId][] = $fileSync;
             }
         } catch (Exception $e) {
             $errDescription = $e->getMessage();
         }
     }
     return array('distributions' => $distributions, 'distributionFileSyncs' => $distributionFileSyncs, 'errDescription' => $errDescription);
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $request = $action->getRequest();
     $page = $this->_getParam('page', 1);
     $pageSize = $this->_getParam('pageSize', 10);
     $form = new Form_PartnerIdFilter();
     $form->populate($request->getParams());
     $newForm = new Form_NewDistributionProfile();
     $actionUrl = $action->view->url(array('controller' => 'plugin', 'action' => 'DistributionProfileListAction'), null, true);
     $form->setAction($actionUrl);
     // init filter
     $partnerFilter = $this->getPartnerFilterFromRequest($request);
     $client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     // get results and paginate
     $paginatorAdapter = new Infra_FilterPaginator($contentDistributionPlugin->distributionProfile, "listByPartner", null, $partnerFilter);
     $paginator = new Infra_Paginator($paginatorAdapter, $request);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($pageSize);
     $providers = array(Kaltura_Client_ContentDistribution_Enum_DistributionProviderType::GENERIC => 'Generic', Kaltura_Client_ContentDistribution_Enum_DistributionProviderType::SYNDICATION => 'Syndication');
     $genericProviders = array();
     $client = Infra_ClientHelper::getClient();
     $contentDistributionClientPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     $providersList = $contentDistributionClientPlugin->distributionProvider->listAction();
     if ($providersList) {
         foreach ($providersList->objects as $provider) {
             if ($provider->type == Kaltura_Client_ContentDistribution_Enum_DistributionProviderType::GENERIC) {
                 $genericProviders[$provider->id] = $provider->name;
             } else {
                 $providers[$provider->type] = $provider->name;
             }
         }
     }
     $newForm->setProviders($providers);
     $newPartnerElement = $newForm->getElement('newPartnerId');
     if ($newPartnerElement) {
         $newPartnerElement->setValue($partnerFilter->idIn);
     }
     // set view
     $action->view->form = $form;
     $action->view->newForm = $newForm;
     $action->view->paginator = $paginator;
     $action->view->providers = $providers;
     $action->view->genericProviders = $genericProviders;
 }
 public function populateActions(Kaltura_Client_ContentDistribution_Type_GenericDistributionProvider $object)
 {
     $this->addProviderActions();
     $client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     $filter = new Kaltura_Client_ContentDistribution_Type_GenericDistributionProviderActionFilter();
     $filter->genericDistributionProviderIdEqual = $object->id;
     $actionsList = null;
     try {
         $actionsList = $contentDistributionPlugin->genericDistributionProviderAction->listAction($filter);
     } catch (Exception $e) {
         return;
     }
     $fields = array("protocol", "serverAddress", "remotePath", "remoteUsername", "remotePassword");
     $files = array("mrssTransformer", "mrssValidator", "resultsTransformer");
     foreach ($actionsList->objects as $actionObject) {
         $action = null;
         switch ($actionObject->action) {
             case Kaltura_Client_ContentDistribution_Enum_DistributionAction::SUBMIT:
                 $action = 'submit';
                 break;
             case Kaltura_Client_ContentDistribution_Enum_DistributionAction::UPDATE:
                 $action = 'update';
                 break;
             case Kaltura_Client_ContentDistribution_Enum_DistributionAction::DELETE:
                 $action = 'delete';
                 break;
             case Kaltura_Client_ContentDistribution_Enum_DistributionAction::FETCH_REPORT:
                 $action = 'fetchReport';
                 break;
         }
         $element = $this->getElement("{$action}-enabled");
         $element->setValue(true);
         foreach ($fields as $field) {
             $element = $this->getElement("{$field}-{$action}");
             $element->setValue($actionObject->{$field});
         }
         foreach ($files as $file) {
             if ($actionObject->{$file}) {
                 $this->addElement('hidden', "{$file}-{$action}-data", array('class' => "{$file}-{$action}-data action-data", 'value' => $actionObject->{$file}));
             }
         }
     }
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $request = $action->getRequest();
     $page = $this->_getParam('page', 1);
     $pageSize = $this->_getParam('pageSize', 10);
     $newForm = new Form_NewGenericProvider();
     // init filter
     $genericProviderFilter = new Kaltura_Client_ContentDistribution_Type_GenericDistributionProviderFilter();
     $client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($client);
     // get results and paginate
     $paginatorAdapter = new Infra_FilterPaginator($contentDistributionPlugin->genericDistributionProvider, "listAction", null, $genericProviderFilter);
     $paginator = new Infra_Paginator($paginatorAdapter, $request);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($pageSize);
     // set view
     $action->view->newForm = $newForm;
     $action->view->paginator = $paginator;
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('layout')->disableLayout();
     $this->client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($this->client);
     $request = $action->getRequest();
     $profileId = $this->_getParam('profile_id');
     $providerType = null;
     $partnerId = null;
     $distributionProfile = null;
     $action->view->errMessage = null;
     $action->view->form = '';
     try {
         if ($profileId) {
             $distributionProfile = $contentDistributionPlugin->distributionProfile->get($profileId);
             $providerType = $distributionProfile->providerType;
             $partnerId = $distributionProfile->partnerId;
         } else {
             $providerType = $this->_getParam('provider_type');
             $partnerId = $this->_getParam('partner_id');
         }
         $form = null;
         $profileClass = 'Kaltura_Client_ContentDistribution_Type_DistributionProfile';
         if ($providerType == Kaltura_Client_ContentDistribution_Enum_DistributionProviderType::GENERIC) {
             $form = new Form_GenericProviderProfileConfiguration($partnerId, $providerType, $distributionProfile);
             $profileClass = 'Kaltura_Client_ContentDistribution_Type_GenericDistributionProfile';
         } elseif ($providerType == Kaltura_Client_ContentDistribution_Enum_DistributionProviderType::SYNDICATION) {
             $form = new Form_SyndicationProviderProfileConfiguration($partnerId, $providerType, $distributionProfile);
             $profileClass = 'Kaltura_Client_ContentDistribution_Type_SyndicationDistributionProfile';
         } else {
             $form = KalturaPluginManager::loadObject('Form_ProviderProfileConfiguration', $providerType, array($partnerId, $providerType, $distributionProfile));
             $profileClass = KalturaPluginManager::getObjectClass($profileClass, $providerType);
         }
         KalturaLog::debug("profile class [{$profileClass}]");
         if (!$form) {
             $action->view->errMessage = "Profile form not found for provider [{$providerType}]";
             return;
         }
         $form->setAction($action->view->url(array('controller' => 'plugin', 'action' => 'DistributionProfileConfigureAction')));
         $pager = new Kaltura_Client_Type_FilterPager();
         $pager->pageSize = 100;
         Infra_ClientHelper::impersonate($partnerId);
         $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager);
         Infra_ClientHelper::unimpersonate();
         if ($profileId) {
             if ($request->isPost()) {
                 if ($form->isValid($request->getPost())) {
                     $form->populate($request->getPost());
                     $distributionProfile = $form->getObject($profileClass, $request->getPost());
                     $form->resetUnUpdatebleAttributes($distributionProfile);
                     Infra_ClientHelper::impersonate($partnerId);
                     $distributionProfile = $contentDistributionPlugin->distributionProfile->update($profileId, $distributionProfile);
                     $form->saveProviderAdditionalObjects($distributionProfile);
                     Infra_ClientHelper::unimpersonate();
                     $form->setAttrib('class', 'valid');
                     $action->view->formValid = true;
                 } else {
                     $form->populate($request->getPost());
                     $distributionProfile = $form->getObject($profileClass, $request->getPost());
                     $this->populateForm($form, $distributionProfile, $flavorParamsResponse);
                 }
             } else {
                 $form->populateFromObject($distributionProfile);
                 $this->populateForm($form, $distributionProfile, $flavorParamsResponse);
             }
         } else {
             if ($request->isPost() && $form->isValid($request->getPost())) {
                 $form->populate($request->getPost());
                 $distributionProfile = $form->getObject($profileClass, $request->getPost());
                 if (!$distributionProfile->partnerId) {
                     $distributionProfile->partnerId = 0;
                 }
                 Infra_ClientHelper::impersonate($distributionProfile->partnerId);
                 $distributionProfile->partnerId = null;
                 $distributionProfile = $contentDistributionPlugin->distributionProfile->add($distributionProfile);
                 $form->saveProviderAdditionalObjects($distributionProfile);
                 Infra_ClientHelper::unimpersonate();
                 $form->setAttrib('class', 'valid');
                 $action->view->formValid = true;
             } else {
                 $form->populate($request->getPost());
                 $distributionProfile = $form->getObject($profileClass, $request->getPost());
                 $this->populateForm($form, $distributionProfile, $flavorParamsResponse);
             }
         }
     } catch (Exception $e) {
         KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString());
         $action->view->errMessage = $e->getMessage();
         $form->populate($request->getPost());
         if (isset($flavorParamsResponse)) {
             $distributionProfile = $form->getObject($profileClass, $request->getPost());
             $this->populateForm($form, $distributionProfile, $flavorParamsResponse);
         }
         Infra_ClientHelper::unimpersonate();
     }
     $action->view->form = $form;
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('layout')->disableLayout();
     $providerId = $this->_getParam('provider_id');
     $this->client = Infra_ClientHelper::getClient();
     $contentDistributionPlugin = Kaltura_Client_ContentDistribution_Plugin::get($this->client);
     $form = new Form_GenericProviderConfiguration();
     $form->setAction($action->view->url(array('controller' => 'plugin', 'action' => 'GenericDistributionProviderConfigureAction')));
     $request = $action->getRequest();
     $pager = new Kaltura_Client_Type_FilterPager();
     $pager->pageSize = 100;
     $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager);
     $action->view->errMessage = null;
     $action->view->form = '';
     try {
         if ($providerId) {
             if ($request->isPost()) {
                 $form->isValid($request->getPost());
                 $form->populate($request->getPost());
                 $genericDistributionProvider = $form->getObject("Kaltura_Client_ContentDistribution_Type_GenericDistributionProvider", $request->getPost());
                 $genericDistributionProvider->partnerId = null;
                 $contentDistributionPlugin->genericDistributionProvider->update($providerId, $genericDistributionProvider);
                 $this->saveProviderActions($providerId, $form);
             } else {
                 $genericDistributionProvider = $contentDistributionPlugin->genericDistributionProvider->get($providerId);
                 $form->populateFromObject($genericDistributionProvider);
                 $optionalFlavorParamsIds = array();
                 $requiredFlavorParamsIds = array();
                 if (!is_null($genericDistributionProvider->optionalFlavorParamsIds) && strlen($genericDistributionProvider->optionalFlavorParamsIds)) {
                     $optionalFlavorParamsIds = explode(',', $genericDistributionProvider->optionalFlavorParamsIds);
                 }
                 if (!is_null($genericDistributionProvider->requiredFlavorParamsIds) && strlen($genericDistributionProvider->requiredFlavorParamsIds)) {
                     $requiredFlavorParamsIds = explode(',', $genericDistributionProvider->requiredFlavorParamsIds);
                 }
                 $form->addFlavorParamsFields($flavorParamsResponse, $optionalFlavorParamsIds, $requiredFlavorParamsIds);
                 if (is_array($genericDistributionProvider->requiredThumbDimensions)) {
                     foreach ($genericDistributionProvider->requiredThumbDimensions as $dimensions) {
                         $form->addThumbDimensions($dimensions, true);
                     }
                 }
                 if (is_array($genericDistributionProvider->optionalThumbDimensions)) {
                     foreach ($genericDistributionProvider->optionalThumbDimensions as $dimensions) {
                         $form->addThumbDimensions($dimensions, false);
                     }
                 }
                 $form->addThumbDimensionsForm();
                 $form->addProviderActions();
                 $form->populateActions($genericDistributionProvider);
                 $action->view->form = $form;
             }
         } else {
             if ($request->isPost()) {
                 $form->isValid($request->getPost());
                 $form->populate($request->getPost());
                 $genericDistributionProvider = $form->getObject("Kaltura_Client_ContentDistribution_Type_GenericDistributionProvider", $request->getPost());
                 if (!$genericDistributionProvider->partnerId) {
                     $genericDistributionProvider->partnerId = 0;
                 }
                 Infra_ClientHelper::impersonate($genericDistributionProvider->partnerId);
                 $genericDistributionProvider->partnerId = null;
                 $genericDistributionProvider = $contentDistributionPlugin->genericDistributionProvider->add($genericDistributionProvider);
                 $this->saveProviderActions($genericDistributionProvider->id, $form);
                 Infra_ClientHelper::unimpersonate();
             } else {
                 $form->addFlavorParamsFields($flavorParamsResponse);
                 $form->addThumbDimensionsForm();
                 $form->addProviderActions();
                 $action->view->form = $form;
             }
         }
     } catch (Exception $e) {
         KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString());
         $action->view->errMessage = $e->getMessage();
     }
 }