public function populateFromObject(Form_PartnerConfiguration $form, Kaltura_Client_SystemPartner_Type_SystemPartnerConfiguration $partnerConfiguration, Kaltura_Client_SystemPartner_Type_SystemPartnerLimit $object, $add_underscore = true)
 {
     $isPermitted = true;
     if (count($this->requiredPartnerPermissions)) {
         $isPermitted = false;
         $requiredPartnerPermissions = array_flip($this->requiredPartnerPermissions);
         if ($partnerConfiguration->permissions && count($partnerConfiguration->permissions)) {
             foreach ($partnerConfiguration->permissions as $permission) {
                 if (isset($requiredPartnerPermissions[$permission->name]) && $permission->status == Kaltura_Client_Enum_PermissionStatus::ACTIVE) {
                     unset($requiredPartnerPermissions[$permission->name]);
                 }
             }
         }
         if (!count($requiredPartnerPermissions)) {
             $isPermitted = true;
         }
     }
     $props = $object;
     if (is_object($object)) {
         $props = get_object_vars($object);
     }
     foreach ($props as $prop => $value) {
         if ($add_underscore) {
             $pattern = '/(.)([A-Z])/';
             $replacement = '\\1_\\2';
             $prop = strtolower(preg_replace($pattern, $replacement, $prop));
         }
         $elementName = $this->limitType . '_' . $prop;
         $form->setDefault($elementName, $value);
         if (!$isPermitted) {
             $element = $form->getElement($elementName);
             if ($element) {
                 $element->setOptions(array('disabled' => true));
             }
         }
     }
 }
 public function configureAction()
 {
     $this->_helper->layout->disableLayout();
     $partnerId = $this->_getParam('partner_id');
     $client = Infra_ClientHelper::getClient();
     $form = new Form_PartnerConfiguration();
     $systemPartnerPlugin = Kaltura_Client_SystemPartner_Plugin::get($client);
     $partner = Zend_Registry::get('config')->partner;
     $allowNonePackage = isset($partner->enableNonePackage) ? $partner->enableNonePackage : false;
     //		Form_PackageHelper::addPackagesToForm($form, $systemPartnerPlugin->systemPartner->getPackages(), 'partner_package', $allowNonePackage);
     //		Form_PackageHelper::addPackagesToForm($form, $systemPartnerPlugin->systemPartner->getPackagesClassOfService(), 'partner_package_class_of_service');
     //		Form_PackageHelper::addPackagesToForm($form, $systemPartnerPlugin->systemPartner->getPackagesVertical(), 'vertical_clasiffication');
     $request = $this->getRequest();
     $this->view->errMessage = false;
     if ($request->isPost()) {
         if ($form->isValid($request->getPost())) {
             $this->view->formValid = true;
             $form->populate($request->getPost());
             $config = $form->getObject("Kaltura_Client_SystemPartner_Type_SystemPartnerConfiguration", $request->getPost());
             $config->extendedFreeTrailExpiryDate = strtotime($this->_getParam('extended_free_trail_expiry_date'));
             // support clear wamsAccountName and wamsAccountKey
             if (is_null($config->wamsAccountName)) {
                 $config->wamsAccountName = '';
             }
             if (is_null($config->wamsAccountKey)) {
                 $config->wamsAccountKey = '';
             }
             try {
                 $systemPartnerPlugin->systemPartner->updateConfiguration($partnerId, $config);
             } catch (Exception $e) {
                 $this->view->errMessage = $e->getMessage();
             }
             $extentFreeTrail = $this->_getParam('extended_free_trail');
             if (isset($extentFreeTrail) && $extentFreeTrail) {
                 $status = Kaltura_Client_Enum_PartnerStatus::ACTIVE;
                 $client = Infra_ClientHelper::getClient();
                 $systemPartnerPlugin = Kaltura_Client_SystemPartner_Plugin::get($client);
                 $systemPartnerPlugin->systemPartner->updateStatus($partnerId, $status);
             }
         } else {
             $this->view->formValid = false;
             $form->populate($request->getPost());
         }
     } else {
         $client->startMultiRequest();
         $systemPartnerPlugin->systemPartner->get($partnerId);
         $systemPartnerPlugin->systemPartner->getConfiguration($partnerId);
         try {
             $result = $client->doMultiRequest();
             $partner = $result[0];
             $config = $result[1];
             $form->populateFromObject($config);
         } catch (Exception $e) {
             $this->view->errMessage = $e->getMessage();
         }
         //			$form->getElement('monitor_usage_history')->setAttrib('onClick', 'openViewHistory('. $partnerId .')');
         //			$monitorUsageDataElement = $form->getElement('extended_free_trail_expiry_date');
         //			$monitorUsageDataElement->setValue(date("m/d/y",$monitorUsageDataElement->getValue()));
     }
     $this->view->form = $form;
     $this->view->partnerId = $partnerId;
 }