コード例 #1
0
 public function configureStorageAction()
 {
     $this->_helper->layout->disableLayout();
     $partnerId = $this->_getParam('partnerId');
     $storageId = $this->_getParam('storageId');
     $type = $this->_getParam('type');
     $editMode = false;
     $client = Infra_ClientHelper::getClient();
     $storage = null;
     if ($storageId) {
         Infra_ClientHelper::impersonate($partnerId);
         try {
             $storage = $client->storageProfile->get($storageId);
         } catch (Exception $e) {
             Infra_ClientHelper::unimpersonate();
             throw $e;
         }
         Infra_ClientHelper::unimpersonate();
         $type = $storage->protocol;
     }
     $form = KalturaPluginManager::loadObject('Form_Partner_BaseStorageConfiguration', $type, array($partnerId, $type));
     /* @var $form Form_StorageConfiguration */
     KalturaLog::debug("form class: " . get_class($form));
     if (!$form || !$form instanceof Form_Partner_BaseStorageConfiguration) {
         if ($type == Kaltura_Client_Enum_StorageProfileProtocol::LOCAL) {
             $form = new Form_Partner_LocalStorageConfiguration();
         } else {
             $form = new Form_Partner_StorageConfiguration();
         }
     }
     //$form->setAction($action->view->url(array('controller' => 'partner', 'action' => 'configureStorageAction')));
     $request = $this->getRequest();
     $form->populate($request->getParams());
     $request = $this->getRequest();
     $pager = new Kaltura_Client_Type_FilterPager();
     $pager->pageSize = 500;
     if (!$storageId) {
         $partnerId = $request->getParam('new_partner_id');
         $form->getElement('partnerId')->setAttrib('readonly', true);
         $form->getElement('partnerId')->setValue($partnerId);
         Infra_ClientHelper::impersonate($partnerId);
         $flavorParamsResponse = $client->flavorParams->listAction(null, $pager);
         Infra_ClientHelper::unimpersonate();
         $form->addFlavorParamsFields($flavorParamsResponse);
     } else {
         $flavorParamsResponse = null;
         Infra_ClientHelper::impersonate($partnerId);
         try {
             $flavorParamsResponse = $client->flavorParams->listAction(null, $pager);
         } catch (Exception $e) {
             Infra_ClientHelper::unimpersonate();
             throw $e;
         }
         Infra_ClientHelper::unimpersonate();
         $flavorParamsIds = array();
         if ($storage->flavorParamsIds) {
             $flavorParamsIds = explode(',', $storage->flavorParamsIds);
         }
         $form->getElement('partnerId')->setAttrib('readonly', true);
         $form->addFlavorParamsFields($flavorParamsResponse, $flavorParamsIds);
         if (!$request->isPost()) {
             $form->populateFromObject($storage, false);
         }
     }
     if ($request->isPost()) {
         $request = $this->getRequest();
         $formData = $request->getPost();
         if ($form->isValid($formData)) {
             $this->view->formValid = true;
             $form->populate($formData);
             $storageProfileClass = KalturaPluginManager::getObjectClass('Kaltura_Client_Type_StorageProfile', $type);
             if (!$storageProfileClass) {
                 if ($type == Kaltura_Client_Enum_StorageProfileProtocol::S3) {
                     $storageProfileClass = 'Kaltura_Client_Type_AmazonS3StorageProfile';
                 } else {
                     $storageProfileClass = 'Kaltura_Client_Type_StorageProfile';
                 }
             }
             $storageFromForm = $form->getObject($storageProfileClass, $formData, false, true);
             $flavorParams = array();
             foreach ($flavorParamsResponse->objects as $flavorParamsItem) {
                 if ($this->_getParam('flavorParamsId_' . $flavorParamsItem->id, false)) {
                     $flavorParams[] = $flavorParamsItem->id;
                 }
             }
             if (count($flavorParams)) {
                 $storageFromForm->flavorParamsIds = implode(',', $flavorParams);
             } else {
                 $storageFromForm->flavorParamsIds = '';
             }
             if (!$editMode) {
                 $storageFromForm->protocol = $type;
             }
             KalturaLog::log('Storage: ' . print_r($storageFromForm, true));
             Infra_ClientHelper::impersonate($storageFromForm->partnerId);
             $storageFromForm->partnerId = null;
             if (!$storageId) {
                 $client->storageProfile->add($storageFromForm);
             } else {
                 $client->storageProfile->update($storageId, $storageFromForm);
             }
         } else {
             $this->view->formValid = false;
             $form->populate($formData);
         }
     }
     KalturaLog::debug("storage protocol: {$type}");
     $this->view->form = $form;
     $this->view->protocol = $type;
 }
 public function configureStorageAction()
 {
     $this->_helper->layout->disableLayout();
     $storageId = $this->_getParam('storageId');
     $editMode = false;
     if ($storageId) {
         $editMode = true;
     }
     $client = Infra_ClientHelper::getClient();
     $form = new Form_Partner_StorageConfiguration();
     $request = $this->getRequest();
     $form->populate($request->getParams());
     Form_Partner_StorageHelper::addProtocolsToForm($form);
     Form_Partner_StorageHelper::addPathManagersToForm($form);
     Form_Partner_StorageHelper::addUrlManagersToForm($form);
     Form_Partner_StorageHelper::addTriggersToForm($form);
     $request = $this->getRequest();
     $pager = new Kaltura_Client_Type_FilterPager();
     $pager->pageSize = 500;
     if (!$editMode) {
         $flavorParamsResponse = $client->flavorParams->listAction(null, $pager);
         $form->addFlavorParamsFields($flavorParamsResponse);
         $form->getElement('partnerId')->setAttrib('readonly', true);
         $form->getElement('partnerId')->setValue($request->getParam('new_partner_id'));
     } else {
         $storage = $client->storageProfile->get($storageId);
         Infra_ClientHelper::impersonate($storage->partnerId);
         $flavorParamsResponse = $client->flavorParams->listAction(null, $pager);
         Infra_ClientHelper::unimpersonate();
         $flavorParamsIds = array();
         if ($storage->flavorParamsIds) {
             $flavorParamsIds = explode(',', $storage->flavorParamsIds);
         }
         $form->getElement('partnerId')->setAttrib('readonly', true);
         $form->addFlavorParamsFields($flavorParamsResponse, $flavorParamsIds);
         if (!$request->isPost()) {
             $form->populateFromObject($storage, false);
         }
     }
     if ($request->isPost()) {
         $request = $this->getRequest();
         $formData = $request->getPost();
         if ($form->isValid($formData)) {
             $this->view->formValid = true;
             KalturaLog::log('Request: ' . print_r($request->getPost(), true));
             $form->populate($request->getPost());
             $storage = $form->getObject("Kaltura_Client_Type_StorageProfile", $request->getPost(), false, true);
             $flavorParams = array();
             foreach ($flavorParamsResponse->objects as $flavorParamsItem) {
                 if ($this->_getParam('flavorParamsId_' . $flavorParamsItem->id, false)) {
                     $flavorParams[] = $flavorParamsItem->id;
                 }
             }
             if (count($flavorParams)) {
                 $storage->flavorParamsIds = implode(',', $flavorParams);
             } else {
                 $storage->flavorParamsIds = '';
             }
             KalturaLog::log('Storage: ' . print_r($storage, true));
             Infra_ClientHelper::impersonate($storage->partnerId);
             $storage->partnerId = null;
             if (!$editMode) {
                 $client->storageProfile->add($storage);
             } else {
                 $client->storageProfile->update($storageId, $storage);
             }
         } else {
             $this->view->formValid = false;
             $form->populate($formData);
         }
     }
     $this->view->form = $form;
 }