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; }