예제 #1
0
 /**
  * Performs an authentication attempt
  *
  * @throws Zend_Auth_Adapter_Exception If authentication cannot be performed
  * @return Zend_Auth_Result
  */
 public function authenticate()
 {
     if (!$this->username || !$this->password) {
         return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, null);
     }
     $settings = Zend_Registry::get('config')->settings;
     $partnerId = $settings->partnerId;
     $client = Kaltura_ClientHelper::getClient();
     $client->setKs(null);
     try {
         $ks = $client->user->loginByLoginId($this->username, $this->password, $partnerId);
         $client->setKs($ks);
         $user = $client->user->getByLoginId($this->username, $partnerId);
         $identity = new Kaltura_UserIdentity($user, $ks);
         if ($user->partnerId != $partnerId) {
             throw new Exception('SYSTEM_USER_INVALID_CREDENTIALS');
         }
         return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
     } catch (Exception $ex) {
         if ($ex->getCode() === 'SYSTEM_USER_INVALID_CREDENTIALS' || $ex->getCode() === 'SYSTEM_USER_DISABLED' || $ex->getCode() === 'USER_WRONG_PASSWORD' || $ex->getCode() === 'USER_NOT_FOUND') {
             return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, null);
         } else {
             throw $ex;
         }
     }
 }
 protected function addMetadataProfile($enableNone = false)
 {
     $metadataProfiles = null;
     try {
         $metadataProfileFilter = new KalturaMetadataProfileFilter();
         $metadataProfileFilter->metadataObjectTypeEqual = KalturaMetadataObjectType::ENTRY;
         $client = Kaltura_ClientHelper::getClient();
         Kaltura_ClientHelper::impersonate($this->partnerId);
         $metadataProfileList = $client->metadataProfile->listAction($metadataProfileFilter);
         Kaltura_ClientHelper::unimpersonate();
         $metadataProfiles = $metadataProfileList->objects;
     } catch (KalturaClientException $e) {
         $metadataProfiles = null;
     }
     if (count($metadataProfiles)) {
         $this->addElement('select', 'metadata_profile_id', array('label' => 'Metadata Profile ID:', 'filters' => array('StringTrim')));
         $element = $this->getElement('metadata_profile_id');
         if ($enableNone) {
             $element->addMultiOption('', 'None');
         }
         foreach ($metadataProfiles as $metadataProfile) {
             $element->addMultiOption($metadataProfile->id, $metadataProfile->name);
         }
     } else {
         $this->addElement('hidden', 'metadata_profile_id', array('value' => 0));
     }
 }
예제 #3
0
 private static function loadPackges()
 {
     if (is_null(self::$packages)) {
         $client = Kaltura_ClientHelper::getClient();
         self::$packages = $client->systemPartner->getPackages();
     }
 }
예제 #4
0
 public function init()
 {
     // Set the method for the display form to POST
     $this->setMethod('post');
     $this->setAttrib('class', 'inline-form');
     // Add an email address element
     $this->addElement('text', 'email', array('label' => 'Email address:', 'required' => true, 'filters' => array('StringTrim'), 'validators' => array('EmailAddress')));
     // Add an first name element
     $this->addElement('text', 'first_name', array('label' => 'First Name:', 'required' => true, 'filters' => array('StringTrim'), 'validators' => array()));
     // Add an last name element
     $this->addElement('text', 'last_name', array('label' => 'Last Name:', 'required' => true, 'filters' => array('StringTrim'), 'validators' => array()));
     $this->addElement('select', 'role', array('label' => 'Role:', 'filters' => array('StringTrim'), 'required' => true));
     $element = $this->getElement('role');
     $client = Kaltura_ClientHelper::getClient();
     $filter = new KalturaUserRoleFilter();
     $filter->tagsMultiLikeAnd = 'admin_console';
     $userRoles = $client->userRole->listAction($filter);
     if ($userRoles && isset($userRoles->objects)) {
         $userRoles = $userRoles->objects;
         foreach ($userRoles as $role) {
             $element->addMultiOption($role->id, $role->name);
         }
     }
     $this->addDisplayGroup(array('email', 'first_name', 'last_name', 'submit', 'role'), 'user_info', array('decorators' => array('Description', 'FormElements', array('Fieldset'))));
     // Add the submit button
     $this->addElement('button', 'submit', array('type' => 'submit', 'ignore' => true, 'label' => 'Create', 'decorators' => array('ViewHelper')));
     $this->addDisplayGroup(array('submit'), 'buttons1', array('decorators' => array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'buttons')))));
 }
예제 #5
0
 public function init()
 {
     // Set the method for the display form to POST
     $this->setMethod('post');
     $this->setAttrib('class', 'form');
     $this->setDescription('user change role');
     $this->loadDefaultDecorators();
     $this->addDecorator('Description', array('placement' => 'prepend'));
     // Add a name element
     $this->addElement('text', 'name', array('label' => 'User Name:', 'filters' => array('StringTrim'), 'readonly' => true, 'ignore' => true));
     // Add an email address element
     $this->addElement('text', 'email', array('label' => 'Email address:', 'filters' => array('StringTrim'), 'readonly' => true, 'ignore' => true));
     // Add a new role element
     $this->addElement('select', 'role', array('label' => 'Role:', 'filters' => array('StringTrim'), 'required' => true));
     $element = $this->getElement('role');
     $client = Kaltura_ClientHelper::getClient();
     $filter = new KalturaUserRoleFilter();
     $filter->tagsMultiLikeAnd = 'admin_console';
     $userRoles = $client->userRole->listAction($filter);
     if ($userRoles && isset($userRoles->objects)) {
         $userRoles = $userRoles->objects;
         foreach ($userRoles as $role) {
             $element->addMultiOption($role->id, $role->name);
         }
     }
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('viewRenderer')->setNoRender();
     $providerId = $this->_getParam('provider_id');
     $client = Kaltura_ClientHelper::getClient();
     try {
         $client->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);
     }
 }
예제 #7
0
파일: Widget.php 프로젝트: richhl/kalturaCE
 public function loadVersions($objType)
 {
     $client = Kaltura_ClientHelper::getClient();
     $typesInfo = $client->uiConf->getAvailableTypes();
     $versionElement = $this->getElement('version');
     $versionElement->addMultiOption('', '');
     foreach ($typesInfo as $typeInfo) {
         if ($typeInfo->type == $objType) {
             foreach ($typeInfo->versions as $version) {
                 $versionElement->addMultiOption($version->value, $version->value);
             }
         }
     }
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('viewRenderer')->setNoRender();
     $profileId = $this->_getParam('profile_id');
     $status = $this->_getParam('status');
     $client = Kaltura_ClientHelper::getClient();
     try {
         $client->distributionProfile->updateStatus($profileId, $status);
         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);
     }
 }
예제 #9
0
 /**
  * 
  * @param int $offset
  * @param int $itemCountPerPage
  */
 protected function callService($offset, $itemCountPerPage)
 {
     $client = Kaltura_ClientHelper::getClient();
     if ($this->impersonatedPartnerId) {
         Kaltura_ClientHelper::impersonate($this->impersonatedPartnerId);
     }
     $pager = new KalturaFilterPager();
     $pager->pageIndex = (int) ($offset / $itemCountPerPage) + 1;
     $pager->pageSize = $itemCountPerPage;
     $service = $this->service;
     $action = $this->action;
     $params = $this->args;
     $params[] = $pager;
     $response = call_user_func_array(array($client->{$service}, $action), $params);
     $this->totalCount = $response->totalCount;
     return $response->objects;
 }
예제 #10
0
 public function exportCsvAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $request = $this->getRequest();
     $from = new Zend_Date($this->_getParam('from_date', $this->getDefaultFromDate()));
     $to = new Zend_Date($this->_getParam('to_date', $this->getDefaultToDate()));
     $client = Kaltura_ClientHelper::getClient();
     if ($client->getKs() == null) {
         $client->setKs(self::generateKs());
     }
     $form = new Form_PartnerUsageFilter();
     $form->populate($request->getParams());
     // init filters
     $partnerFilter = $this->getPartnerFilterFromForm($form);
     $usageFilter = new KalturaSystemPartnerUsageFilter();
     $usageFilter->fromDate = $from->toString(Zend_Date::TIMESTAMP);
     $usageFilter->toDate = $to->toString(Zend_Date::TIMESTAMP);
     $pager = new KalturaFilterPager();
     $pager->pageIndex = 1;
     $pager->pageSize = 500;
     $items = array();
     while (true) {
         $response = $client->systemPartner->getUsage($partnerFilter, $usageFilter, $pager);
         if (count($response->objects) <= 0) {
             break;
         }
         foreach ($response->objects as &$object) {
             $items[] = $object;
         }
         $pager->pageIndex++;
     }
     $format = $this->view->translate('csv date');
     $fileName = 'Usage report ' . $from->toString($format) . ' to ' . $to->toString($format) . '.csv';
     header('Content-type: text/csv');
     header('Content-Disposition: attachment; filename="' . $fileName . '"');
     // echo the csv header
     echo $this->view->translate('partner-usage table partnerStatus'), ',', $this->view->translate('partner-usage table partnerName'), ',', $this->view->translate('partner-usage table partnerId'), ',', $this->view->translate('partner-usage table partnerCreatedAt'), ',', $this->view->translate('partner-usage table partnerPackage'), ',', $this->view->translate('partner-usage table views'), ',', $this->view->translate('partner-usage table plays'), ',', $this->view->translate('partner-usage table entriesCount'), ',', $this->view->translate('partner-usage table totalEntriesCount'), ',', $this->view->translate('partner-usage table videoEntriesCount'), ',', $this->view->translate('partner-usage table imagesEntriesCount'), ',', $this->view->translate('partner-usage table audioEntriesCount'), ',', $this->view->translate('partner-usage table mixEntriesCount'), ',', $this->view->translate('partner-usage table bandwidth'), ',', $this->view->translate('partner-usage table totalStorage'), ',', $this->view->translate('partner-usage table storage'), "\r\n";
     // echo the csv data
     foreach ($items as $item) {
         $d = new Zend_Date($item->partnerCreatedAt);
         echo $this->view->enumTranslate('KalturaPartnerStatus', $item->partnerStatus), ',', $item->partnerName, ',', $item->partnerId, ',', '"', $d->toString(Zend_Date::DATE_LONG), '",', $this->view->translate($this->view->packageNameById($item->partnerPackage)), ',', (int) $item->views, ',', (int) $item->plays, ',', (int) $item->entriesCount, ',', (int) $item->totalEntriesCount, ',', (int) $item->videoEntriesCount, ',', (int) $item->imageEntriesCount, ',', (int) $item->audioEntriesCount, ',', (int) $item->mixEntriesCount, ',', (int) $item->bandwidth, ',', (int) $item->totalStorage, ',', (int) $item->storage, "\r\n";
     }
 }
예제 #11
0
 public function doAction(Zend_Controller_Action $action)
 {
     $request = $action->getRequest();
     $page = $request->getParam('page', 1);
     $pageSize = $request->getParam('pageSize', 10);
     $action->view->form = new Form_PartnerFilter();
     // init filter
     $partnerFilter = $this->getPartnerFilterFromRequest($request);
     /*
     		// get results and paginate
     		$paginatorAdapter = new Kaltura_FilterPaginator("metadataProfile", "listAction", null, $partnerFilter);
     		$paginator = new Kaltura_Paginator($paginatorAdapter, $request);
     		$paginator->setCurrentPageNumber($page);
     		$paginator->setItemCountPerPage($pageSize);
     		
     		// popule the form
     		$form->populate($request->getParams());
     		
     		// set view
     		$action->view->form = $form;
     		$action->view->paginator = $paginator;
     */
     return;
     $request = $action->getRequest();
     $action->view->metadataProfilesForm = new Form_metadataProfiles();
     $action->view->metadataProfilesForm->populate($request->getParams());
     $partnerId = $request->getParam('partnerId', false);
     $entryId = $request->getParam('entryId', false);
     $freeText = $request->getParam('freeText', false);
     $form = new Form_PartnerFilter();
     $form->populate($request->getParams());
     $action->view->form = $form;
     if ($partnerId || $entryId || $freeText) {
         try {
             $client = Kaltura_ClientHelper::getClient();
             $metadataProfileFilter = new KalturaMetadataProfileFilter();
             $metadataProfileFilter->partnerIdEqual = $partnerId;
             $this->view->inQueuePaginator = null;
             //$client->user->add($systemUser);
         } catch (Exception $ex) {
             //to do
         }
     }
 }
 public function populateActions(KalturaGenericDistributionProvider $object)
 {
     $this->addProviderActions();
     $client = Kaltura_ClientHelper::getClient();
     $filter = new KalturaGenericDistributionProviderActionFilter();
     $filter->genericDistributionProviderIdEqual = $object->id;
     $actionsList = null;
     try {
         $actionsList = $client->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 KalturaDistributionAction::SUBMIT:
                 $action = 'submit';
                 break;
             case KalturaDistributionAction::UPDATE:
                 $action = 'update';
                 break;
             case KalturaDistributionAction::DELETE:
                 $action = 'delete';
                 break;
             case KalturaDistributionAction::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 getDataArray($entryId, $partnerId)
 {
     $client = Kaltura_ClientHelper::getClient();
     if (!$client) {
         $errors[] = 'init client failed';
         return;
     }
     $filter = new KalturaEntryDistributionFilter();
     $filter->entryIdEqual = $entryId;
     $distributions = array();
     $distributionFileSyncs = array();
     $errDescription = null;
     try {
         Kaltura_ClientHelper::impersonate($partnerId);
         $entryDistributionList = $client->entryDistribution->listAction($filter);
         Kaltura_ClientHelper::unimpersonate();
         $distributions = $entryDistributionList->objects;
     } catch (Exception $e) {
         $errDescription = $e->getMessage();
     }
     $distributionIds = array();
     foreach ($distributions as $distribution) {
         $distributionFileSyncs[$distribution->id] = array();
         $distributionIds[] = $distribution->id;
     }
     if (count($distributionIds)) {
         try {
             $filter = new KalturaFileSyncFilter();
             $filter->fileObjectTypeEqual = KalturaFileSyncObjectType::ENTRY_DISTRIBUTION;
             $filter->objectIdIn = implode(',', $distributionIds);
             $pager = new KalturaFilterPager();
             $pager->pageSize = 100;
             $fileSyncList = $client->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);
 }
 /**
  * 
  * @param int $offset
  * @param int $itemCountPerPage
  */
 protected function callService($offset, $itemCountPerPage)
 {
     $objects = parent::callService($offset, $itemCountPerPage);
     $partners = array();
     foreach ($objects as $object) {
         $partners[$object->partnerId] = null;
     }
     $filter = new KalturaPartnerFilter();
     $filter->idIn = implode(',', array_keys($partners));
     $client = Kaltura_ClientHelper::getClient();
     $partnersResponse = $client->systemPartner->listAction($filter);
     foreach ($partnersResponse->objects as $partner) {
         $partners[$partner->id] = $partner;
     }
     foreach ($objects as $object) {
         if (!is_null($partners[$object->partnerId])) {
             $object->partner = $partners[$object->partnerId];
         }
     }
     return $objects;
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $request = $action->getRequest();
     $page = $this->_getParam('page', 1);
     $pageSize = $this->_getParam('pageSize', 10);
     $form = new Form_PartnerFilter();
     $newForm = new Form_NewDistributionProfile();
     $actionUrl = $action->view->url(array('controller' => 'plugin', 'action' => 'DistributionProfileListAction'), null, true);
     $form->setAction($actionUrl);
     // init filter
     $partnerFilter = $this->getPartnerFilterFromRequest($request);
     // get results and paginate
     $paginatorAdapter = new Kaltura_FilterPaginator("distributionProfile", "listByPartner", null, $partnerFilter);
     $paginator = new Kaltura_Paginator($paginatorAdapter, $request);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($pageSize);
     $providers = array(KalturaDistributionProviderType::GENERIC => 'Generic', KalturaDistributionProviderType::SYNDICATION => 'Syndication');
     $genericProviders = array();
     $client = Kaltura_ClientHelper::getClient();
     $contentDistributionClientPlugin = KalturaContentDistributionClientPlugin::get($client);
     $providersList = $contentDistributionClientPlugin->distributionProvider->listAction();
     if ($providersList) {
         foreach ($providersList->objects as $provider) {
             if ($provider->type == KalturaDistributionProviderType::GENERIC) {
                 $genericProviders[$provider->id] = $provider->name;
             } else {
                 $providers[$provider->type] = $provider->name;
             }
         }
     }
     $newForm->setProviders($providers);
     // set view
     $action->view->form = $form;
     $action->view->newForm = $newForm;
     $action->view->paginator = $paginator;
     $action->view->providers = $providers;
     $action->view->genericProviders = $genericProviders;
 }
예제 #16
0
 /**
  * 
  * @return KalturaClient
  */
 public static function getClient()
 {
     if (self::$client) {
         return self::$client;
     }
     $partnerId = self::getPartnerId();
     $ks = self::getKs();
     $config = new KalturaConfiguration($partnerId);
     $config->serviceUrl = self::getServiceUrl();
     $config->curlTimeout = self::getCurlTimeout();
     $config->setLogger(new Kaltura_ClientLoggingProxy());
     $front = Zend_Controller_Front::getInstance();
     $bootstrap = $front->getParam('bootstrap');
     if ($bootstrap) {
         $enviroment = $bootstrap->getApplication()->getEnvironment();
         if ($enviroment === 'development') {
             $config->startZendDebuggerSession = true;
         }
     }
     $client = new KalturaClient($config);
     $client->setKs($ks);
     self::$client = $client;
     return $client;
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('layout')->disableLayout();
     $this->client = Kaltura_ClientHelper::getClient();
     $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 = $this->client->distributionProfile->get($profileId);
             $providerType = $distributionProfile->providerType;
             $partnerId = $distributionProfile->partnerId;
         } else {
             $providerType = $this->_getParam('provider_type');
             $partnerId = $this->_getParam('partner_id');
         }
         $form = null;
         $profileClass = 'KalturaDistributionProfile';
         if ($providerType == KalturaDistributionProviderType::GENERIC) {
             $form = new Form_GenericProviderProfileConfiguration($partnerId, $providerType);
             $profileClass = 'KalturaGenericDistributionProfile';
         } elseif ($providerType == KalturaDistributionProviderType::SYNDICATION) {
             $form = new Form_SyndicationProviderProfileConfiguration($partnerId, $providerType);
             $profileClass = 'KalturaSyndicationDistributionProfile';
         } else {
             $form = KalturaPluginManager::loadObject('Form_ProviderProfileConfiguration', $providerType, array($partnerId, $providerType));
             $profileClass = KalturaPluginManager::getObjectClass('KalturaDistributionProfile', $providerType);
         }
         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 KalturaFilterPager();
         $pager->pageSize = 100;
         $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager);
         if ($profileId) {
             if ($request->isPost()) {
                 $form->populate($request->getPost());
                 $distributionProfile = $form->getObject($profileClass, $request->getPost());
                 $form->resetUnUpdatebleAttributes($distributionProfile);
                 $distributionProfile = $this->client->distributionProfile->update($profileId, $distributionProfile);
                 $form->saveProviderAdditionalObjects($distributionProfile);
                 $form->setAttrib('class', 'valid');
             } else {
                 $form->populateFromObject($distributionProfile);
                 $optionalFlavorParamsIds = array();
                 $requiredFlavorParamsIds = array();
                 if (!is_null($distributionProfile->optionalFlavorParamsIds) && strlen($distributionProfile->optionalFlavorParamsIds)) {
                     $optionalFlavorParamsIds = explode(',', $distributionProfile->optionalFlavorParamsIds);
                 }
                 if (!is_null($distributionProfile->requiredFlavorParamsIds) && strlen($distributionProfile->requiredFlavorParamsIds)) {
                     $requiredFlavorParamsIds = explode(',', $distributionProfile->requiredFlavorParamsIds);
                 }
                 $form->addFlavorParamsFields($flavorParamsResponse, $optionalFlavorParamsIds, $requiredFlavorParamsIds);
                 foreach ($distributionProfile->requiredThumbDimensions as $dimensions) {
                     $form->addThumbDimensions($dimensions, true);
                 }
                 foreach ($distributionProfile->optionalThumbDimensions as $dimensions) {
                     $form->addThumbDimensions($dimensions, false);
                 }
                 $form->addThumbDimensionsForm();
             }
             $action->view->form = $form;
         } else {
             if ($request->isPost()) {
                 $form->populate($request->getPost());
                 $distributionProfile = $form->getObject($profileClass, $request->getPost());
                 if (!$distributionProfile->partnerId) {
                     $distributionProfile->partnerId = 0;
                 }
                 Kaltura_ClientHelper::impersonate($distributionProfile->partnerId);
                 $distributionProfile->partnerId = null;
                 $distributionProfile = $this->client->distributionProfile->add($distributionProfile);
                 Kaltura_ClientHelper::unimpersonate();
                 $form->saveProviderAdditionalObjects($distributionProfile);
                 $form->setAttrib('class', 'valid');
             } else {
                 $form->addFlavorParamsFields($flavorParamsResponse);
                 $form->addThumbDimensionsForm();
             }
             $action->view->form = $form;
         }
     } catch (Exception $e) {
         KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString());
         $action->view->errMessage = $e->getMessage();
     }
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $action->getHelper('layout')->disableLayout();
     $providerId = $this->_getParam('provider_id');
     $this->client = Kaltura_ClientHelper::getClient();
     $form = new Form_GenericProviderConfiguration();
     $form->setAction($action->view->url(array('controller' => 'plugin', 'action' => 'GenericDistributionProviderConfigureAction')));
     $request = $action->getRequest();
     $pager = new KalturaFilterPager();
     $pager->pageSize = 100;
     $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager);
     $action->view->errMessage = null;
     $action->view->form = '';
     try {
         if ($providerId) {
             if ($request->isPost()) {
                 $form->populate($request->getPost());
                 $genericDistributionProvider = $form->getObject("KalturaGenericDistributionProvider", $request->getPost());
                 $genericDistributionProvider->partnerId = null;
                 $this->client->genericDistributionProvider->update($providerId, $genericDistributionProvider);
                 $this->saveProviderActions($providerId, $form);
             } else {
                 $genericDistributionProvider = $this->client->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);
                 foreach ($genericDistributionProvider->requiredThumbDimensions as $dimensions) {
                     $form->addThumbDimensions($dimensions, true);
                 }
                 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->populate($request->getPost());
                 $genericDistributionProvider = $form->getObject("KalturaGenericDistributionProvider", $request->getPost());
                 if (!$genericDistributionProvider->partnerId) {
                     $genericDistributionProvider->partnerId = 0;
                 }
                 Kaltura_ClientHelper::impersonate($genericDistributionProvider->partnerId);
                 $genericDistributionProvider->partnerId = null;
                 $genericDistributionProvider = $this->client->genericDistributionProvider->add($genericDistributionProvider);
                 $this->saveProviderActions($genericDistributionProvider->id, $form);
                 Kaltura_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();
     }
 }
 protected function addProviderElements()
 {
     $element = new Zend_Form_Element_Hidden('providerElements');
     $element->setLabel('Generic Provider Configuration');
     $element->setDecorators(array('ViewHelper', array('Label', array('placement' => 'append')), array('HtmlTag', array('tag' => 'b'))));
     $this->addElements(array($element));
     $client = Kaltura_ClientHelper::getClient();
     Kaltura_ClientHelper::impersonate($this->partnerId);
     $genericDistributionProviderList = $client->genericDistributionProvider->listAction();
     Kaltura_ClientHelper::unimpersonate();
     $this->addElement('select', 'generic_provider_id', array('label' => 'Provider', 'decorators' => array('ViewHelper', array('Label', array('placement' => 'prepend')), array('HtmlTag', array('tag' => 'dt')))));
     $element = $this->getElement('generic_provider_id');
     if ($genericDistributionProviderList && $genericDistributionProviderList->totalCount) {
         foreach ($genericDistributionProviderList->objects as $genericDistributionProvider) {
             $element->addMultiOption($genericDistributionProvider->id, $genericDistributionProvider->name);
         }
     }
     $this->addEntryFields();
     $this->addMetadataFields();
 }
 public function doAction(Zend_Controller_Action $action)
 {
     $request = $action->getRequest();
     $SystemHelperForm = new Form_SystemHelper();
     $SystemHelperFormResult = new Form_SystemHelperResult();
     $algo = "";
     $secret = "";
     $str = $request->getParam('StringToManipulate', false);
     $algo = $request->getParam('Algorithm', false);
     $key = $request->getParam('des_key', false);
     $secret = $request->getParam('secret', false);
     $res = "";
     if ($algo == "wiki_encode") {
         $res = str_replace(array("|", "/"), array("|01", "|02"), base64_encode(serialize($str)));
     } elseif ($algo == "wiki_decode") {
         $res = @unserialize(base64_decode(str_replace(array("|02", "|01"), array("/", "|"), $str)));
     } elseif ($algo == "wiki_decode_no_serialize") {
         $res = base64_decode(str_replace(array("|02", "|01"), array("/", "|"), $str));
     } elseif ($algo == "base64_encode") {
         $res = base64_encode($str);
     } elseif ($algo == "base64_decode") {
         $res = base64_decode($str);
     } elseif ($algo == "base64_3des_encode") {
         $input = $str;
         $td = mcrypt_module_open('tripledes', '', 'ecb', '');
         $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
         mcrypt_generic_init($td, $key, $iv);
         $encrypted_data = mcrypt_generic($td, $input);
         mcrypt_generic_deinit($td);
         mcrypt_module_close($td);
         $res = base64_encode($encrypted_data);
         $this->des_key = $key;
     } elseif ($algo == "base64_3des_decode") {
         //echo "[$key]";
         $input = base64_decode($str);
         $td = mcrypt_module_open('tripledes', '', 'ecb', '');
         $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
         mcrypt_generic_init($td, $key, $iv);
         $encrypted_data = mdecrypt_generic($td, $input);
         mcrypt_generic_deinit($td);
         mcrypt_module_close($td);
         $res = $encrypted_data;
         $this->des_key = $key;
     } elseif ($algo == "ks") {
         //$ks = ks::fromSecureString ( $str ); // to do ->api Extension
         $client = Kaltura_ClientHelper::getClient();
         $ks = $client->KalturaInternalToolsSystemHelper->fromSecureString($str);
         $res = print_r($ks, true);
         if ($ks != null) {
             $expired = $ks->valid_until;
             $expired_str = self::formatThisData($expired);
             $now = time();
             $now_str = self::formatThisData($now);
             $res .= "<br>" . "valid until: " . $expired_str . "<br>now: {$now} ({$now_str})";
         }
     } elseif ($algo == "kwid") {
         $kwid_str = @base64_decode($str);
         if (!$kwid_str) {
             // invalid string
             return "";
         }
         $cracked = @explode("|", $kwid_str);
         $names = array("kshow_id", "partner_id", "subp_id", "article_name", "widget_id", "hash");
         $combined = array_combine($names, $cracked);
         $md5 = md5($combined["kshow_id"] . $combined["partner_id"] . $combined["subp_id"] . $combined["article_name"] . $combined["widget_id"] . $secret);
         $combined["secret"] = $secret;
         $combined["calculated hash"] = substr($md5, 1, 10);
         $res = print_r($combined, true);
     } elseif ($algo == "ip") {
         //$ip_geo = new myIPGeocoder();// to do ->api Extension
         $client = Kaltura_ClientHelper::getClient();
         if ($str) {
             $remote_addr = $str;
         } else {
             //$remote_addr = requestUtils::getRemoteAddress();// to do ->api Extension
             $remote_addr = $client->KalturaInternalToolsSystemHelper->getRemoteAddress();
         }
         //$res = $ip_geo->iptocountry( $remote_addr );
         $res = $client->KalturaInternalToolsSystemHelper->iptocountry($remote_addr);
     }
     $action->view->key = $key;
     $action->view->secret = $secret;
     $action->view->str = $str;
     $SystemHelperFormResult->getElement('results')->setValue($res);
     $action->view->SystemHelperFormResult = $SystemHelperFormResult;
     $action->view->algo = $algo;
 }
예제 #21
0
 public function externalStoragesAction()
 {
     $request = $this->getRequest();
     $page = $this->_getParam('page', 1);
     $pageSize = $this->_getParam('pageSize', 10);
     $client = Kaltura_ClientHelper::getClient();
     $form = new Form_PartnerFilter();
     $newForm = new Form_NewStorage();
     $action = $this->view->url(array('controller' => 'partner', 'action' => 'external-storages'), null, true);
     $form->setAction($action);
     // init filter
     $partnerFilter = $this->getPartnerFilterFromRequest($request);
     // get results and paginate
     $paginatorAdapter = new Kaltura_FilterPaginator("storageProfile", "listByPartner", null, $partnerFilter);
     $paginator = new Kaltura_Paginator($paginatorAdapter, $request);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($pageSize);
     // popule the form
     $form->populate($request->getParams());
     // set view
     $this->view->form = $form;
     $this->view->newForm = $newForm;
     $this->view->paginator = $paginator;
 }
예제 #22
0
 private function proccessResetPasswordLinkForm($form, $token)
 {
     $request = $this->getRequest();
     $formData = $request->getPost();
     if (!$token) {
         $form->setDescription('no hash key given');
         return;
     }
     if ($form->isValid($formData)) {
         try {
             $newPassword = $userId = $request->getParam('newPassword');
             $client = Kaltura_ClientHelper::getClient();
             $client->setKs(null);
             $client->user->setInitialPassword($token, $newPassword);
             $this->_helper->redirector('index');
         } catch (Exception $ex) {
             if ($ex->getCode() === 'LOGIN_DATA_NOT_FOUND' || $ex->getCode() === 'NEW_PASSWORD_HASH_KEY_INVALID') {
                 $form->setDescription('reset link is no longer valid');
             } else {
                 if ($ex->getCode() === 'PASSWORD_STRUCTURE_INVALID') {
                     $form->setDescription($ex->getMessage());
                 } else {
                     if ($ex->getCode() === 'NEW_PASSWORD_HASH_KEY_EXPIRED') {
                         $form->setDescription($ex->getMessage());
                     } else {
                         if ($ex->getCode() === 'PASSWORD_ALREADY_USED') {
                             $form->setDescription($ex->getMessage());
                         } else {
                             if ($ex->getCode() === 'INTERNAL_SERVERL_ERROR') {
                                 $form->setDescription($ex->getMessage());
                             } else {
                                 throw $ex;
                             }
                         }
                     }
                 }
             }
         }
     } else {
         $form->populate($formData);
     }
 }
예제 #23
0
 private function initPermissions()
 {
     $client = Kaltura_ClientHelper::getClient();
     $permissions = $client->permission->getCurrentPermissions();
     $this->permissions = array_map('trim', explode(',', $permissions));
 }
예제 #24
0
 protected function getUiConfFilterFromRequest(Zend_Controller_Request_Abstract $request)
 {
     $uiConfFilter = new KalturaUiConfFilter();
     $uiConfFilter->objTypeIn = implode(',', array_keys($this->getSupportedUiConfTypes()));
     $partnerFilter = null;
     $filterType = $request->getParam('filter_type');
     $filterInput = $request->getParam('filter_input');
     switch ($filterType) {
         case 'by-uiconf-id':
             $uiConfFilter->idIn = $filterInput;
             break;
         case 'by-partner-id':
             $uiConfFilter->partnerIdIn = $filterInput;
             break;
         case 'by-partner-name':
             $partnerFilter = new KalturaPartnerFilter();
             $partnerFilter->nameLike = $filterInput;
             $statuses = array();
             $statuses[] = KalturaPartnerStatus::ACTIVE;
             $statuses[] = KalturaPartnerStatus::BLOCKED;
             $partnerFilter->statusIn = implode(',', $statuses);
             $partnerFilter->orderBy = KalturaPartnerOrderBy::ID_DESC;
             $client = Kaltura_ClientHelper::getClient();
             $partnersResponse = $client->systemPartner->listAction($partnerFilter);
             if (count($partnersResponse->objects) == 0) {
                 $uiConfFilter->idEqual = -1;
                 // nothing should be found
             } else {
                 $partnerIds = array();
                 foreach ($partnersResponse->objects as $partner) {
                     $partnerIds[] = $partner->id;
                 }
                 $uiConfFilter->partnerIdIn = implode(',', $partnerIds);
             }
     }
     return $uiConfFilter;
 }
예제 #25
0
 public function entryInvestigationAction()
 {
     $request = $this->getRequest();
     $this->view->errors = array();
     $this->view->investigateData = null;
     $this->view->enableActions = false;
     $action = $this->view->url(array('controller' => 'batch', 'action' => 'entry-investigation'), null, true);
     $this->view->searchEntryForm = new Form_Batch_SearchEntry();
     $this->view->searchEntryForm->populate($request->getParams());
     $this->view->searchEntryForm->setAction($action);
     $submitAction = $this->view->searchEntryForm->getElement('submitAction');
     $submitAction->setValue('');
     if (Kaltura_Support::isAdminEnabled()) {
         $upload = new Zend_File_Transfer_Adapter_Http();
         $files = $upload->getFileInfo();
         if (count($files) && isset($files['entryFile']) && $files['entryFile']['size']) {
             $file = $files['entryFile'];
             $investigateData = unserialize(base64_decode(file_get_contents($file['tmp_name'])));
             $entryIdField = $this->view->searchEntryForm->getElement('entryId');
             $entryIdField->setValue($investigateData->entry->id);
             $this->view->investigateData = $investigateData;
             $this->view->enableActions = false;
             return;
         }
     }
     $entryId = $request->getParam('entryId', false);
     if (!$entryId) {
         return;
     }
     $client = Kaltura_ClientHelper::getClient();
     if (!$client) {
         $this->view->errors[] = 'init client failed';
         return;
     }
     if ($request->getParam('searchType') == 'by-flavor-asset-id') {
         try {
             // $entryId is actually flavor id in this case
             $entry = $client->entryAdmin->getByFlavorId($entryId);
         } catch (Exception $e) {
             $this->view->errors[] = 'Flavor asset not found: ' . $e->getMessage();
             return;
         }
         $entryId = $entry->id;
     }
     $submitAction = $request->getParam('submitAction', false);
     if ($submitAction && strlen($submitAction)) {
         $partnerId = $request->getParam('partnerId', 0);
         Kaltura_ClientHelper::impersonate($partnerId);
         if ($submitAction == 'retry') {
             $jobId = $request->getParam('actionJobId', 0);
             $jobType = $request->getParam('actionJobType', 0);
             $client->jobs->retryJob($jobId, $jobType);
         }
         if ($submitAction == 'reconvertEntry') {
             $client->jobs->addConvertProfileJob($entryId);
         }
         if ($submitAction == 'reconvert') {
             $flavorAssetId = $request->getParam('actionFlavorAssetId', 0);
             $client->flavorAsset->reconvert($flavorAssetId);
         }
         if ($submitAction == 'regenerate') {
             $thumbAssetId = $request->getParam('actionFlavorAssetId', 0);
             $client->thumbAsset->regenerate($thumbAssetId);
         }
         Kaltura_ClientHelper::unimpersonate();
     }
     $this->view->investigateData = $this->getEntryInvestigationData($entryId, $this->view->errors);
     $this->view->enableActions = true;
     $partnerId = $this->view->investigateData->entry->partnerId;
     $this->view->plugins = array();
     $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaAdminConsoleEntryInvestigate');
     foreach ($pluginInstances as $pluginInstance) {
         $entryInvestigatePlugins = $pluginInstance->getEntryInvestigatePlugins();
         if (!$entryInvestigatePlugins) {
             continue;
         }
         foreach ($entryInvestigatePlugins as $plugin) {
             $this->view->addBasePath($plugin->getTemplatePath());
             $this->view->plugins[$plugin->getPHTML()] = $plugin->getDataArray($entryId, $partnerId);
         }
     }
 }