public function errorAction() { $this->_helper->layout->disableLayout(); $errors = $this->_getParam('error_handler'); // handle kaltura session expired if (get_class($errors->exception) == 'Kaltura_Client_Exception') { if (strpos($errors->exception->getMessage(), 'EXPIRED')) { Infra_AuthHelper::getAuthInstance()->clearIdentity(); $this->_helper->redirector('login', 'user'); } } // handle Zend MVC errors switch ($errors->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: $this->handleNotFoundException($errors->exception); break; default: if (preg_match(self::ACL_RESOURCE_NOT_EXCEPTION_PATTERN, $errors->exception->getMessage())) { $this->handleNotFoundException($errors->exception); } else { $this->handleApplicationException($errors->exception); } break; } $this->view->exception = $errors->exception; $this->view->request = $errors->request; }
public static function getKs() { if (Infra_AuthHelper::getAuthInstance()->hasIdentity()) { $ks = Infra_AuthHelper::getAuthInstance()->getIdentity()->getKs(); } else { $ks = null; } return $ks; }
public function deniedAction() { $this->view->request = $this->getRequest(); Infra_AuthHelper::getAuthInstance()->clearIdentity(); $this->_helper->viewRenderer('error'); $this->view->code = Kaltura_AdminException::ERROR_CODE_ACCESS_DENIED; $this->getResponse()->setHttpResponseCode(403); $this->getResponse()->setHeader(Kaltura_AdminException::KALTURA_HEADER_ERROR_CODE, $this->view->code, true); }
public function exportCsvAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $request = $this->getRequest(); $from = $this->_getParam('from_date', $this->getDefaultFromDate()); $to = $this->_getParam('to_date', $this->getDefaultToDate()); $client = Infra_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 Kaltura_Client_Type_ReportInputFilter(); $usageFilter->fromDate = DateTime::createFromFormat('m/d/Y', $from)->getTimestamp(); $usageFilter->toDate = DateTime::createFromFormat('m/d/Y', $to)->getTimestamp(); $usageFilter->timeZoneOffset = Infra_AuthHelper::getAuthInstance()->getIdentity()->getTimezoneOffset(); if ($form->getElement('interval')->getValue()) { $usageFilter->interval = $form->getElement('interval')->getValue() == 'daily' ? Kaltura_Client_Enum_ReportInterval::DAYS : Kaltura_Client_Enum_ReportInterval::MONTHS; } $pager = new Kaltura_Client_Type_FilterPager(); $pager->pageIndex = 1; $pager->pageSize = 500; $varConsolePlugin = Kaltura_Client_VarConsole_Plugin::get($client); $items = array(); while (true) { $response = $varConsolePlugin->varConsole->getPartnerUsage($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 . ' to ' . $to . '.csv'; header('Content-type: text/csv'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); // echo the csv header echo $this->view->translate('partner-usage table timeUnit'), ',', $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 bandwidth'), ',', $this->view->translate('partner-usage table averageStorage'), ',', $this->view->translate('partner-usage table peakStorage'), ',', $this->view->translate('partner-usage table storage'), ',', $this->view->translate('partner-usage table deletedStorage'), ',', $this->view->translate('partner-usage table combinedBandwidthStorage'), "\r\n"; // echo the csv data foreach ($items as $item) { $d = new Zend_Date($item->partnerCreatedAt); $dateId = strlen($item->dateId) == 6 ? DateTime::createFromFormat("Ym", $item->dateId) : DateTime::createFromFormat("Ymd", $item->dateId); echo strlen($item->dateId) == 6 ? $dateId->format("M Y") : $dateId->format("d M Y"), ',', $this->view->enumTranslate('Kaltura_Client_Enum_PartnerStatus', $item->partnerStatus), ',', $item->partnerName, ',', $item->partnerId, ',', '"', $d->toString(Zend_Date::DATE_LONG), '",', (int) $item->bandwidth, ',', (int) $item->avgStorage, ',', (int) $item->peakStorage, ',', (int) $item->storage, ',', (int) $item->deletedStorage, ',', (int) $item->combinedStorageBandwidth, ',', "\r\n"; } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $controller = strtolower($request->getControllerName()); $action = strtolower($request->getActionName()); $route = $controller . '/' . $action; if (in_array($route, self::$_whitelist)) { return; } $auth = Infra_AuthHelper::getAuthInstance(); if ($auth->hasIdentity()) { return; } $request->setDispatched(false); $request->setControllerName('user'); $request->setActionName('login'); $request->setParam('next_uri', $request->getPathInfo()); }
public function indexAction() { $request = $this->getRequest(); $page = $this->_getParam('page', 1); $pageSize = $this->_getParam('pageSize', 10); $from = new Zend_Date($this->_getParam('from_date', $this->getDefaultFromDate())); $to = new Zend_Date($this->_getParam('to_date', $this->getDefaultToDate())); $client = Infra_ClientHelper::getClient(); $systemPartnerPlugin = Kaltura_Client_SystemPartner_Plugin::get($client); $form = new Form_PartnerUsageFilter(); $partnerPackages = $systemPartnerPlugin->systemPartner->getPackages(); Form_PackageHelper::addPackagesToForm($form, $partnerPackages, 'partner_package'); $this->view->partnerPackages = array(); foreach ($partnerPackages as $package) { $this->view->partnerPackages[$package->id] = $package->name; } $form->populate($request->getParams()); // when no statuses selected if (!$form->getElement('include_active')->getValue() && !$form->getElement('include_blocked')->getValue() && !$form->getElement('include_removed')->getValue()) { $form->getElement('include_active')->setValue(1); $form->getElement('include_blocked')->setValue(1); $form->getElement('include_removed')->setValue(1); } // init filters $partnerFilter = $this->getPartnerFilterFromForm($form); $usageFilter = new Kaltura_Client_SystemPartner_Type_SystemPartnerUsageFilter(); $usageFilter->fromDate = $from->toString(Zend_Date::TIMESTAMP); $usageFilter->toDate = $to->toString(Zend_Date::TIMESTAMP); $usageFilter->timezoneOffset = Infra_AuthHelper::getAuthInstance()->getIdentity()->getTimezoneOffset(); // get results and paginate $paginatorAdapter = new Infra_FilterPaginator($systemPartnerPlugin->systemPartner, "getUsage", null, $partnerFilter, $usageFilter); $paginator = new Infra_Paginator($paginatorAdapter, $request); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage($pageSize); Form_PackageHelper::addPackagesToForm($form, $systemPartnerPlugin->systemPartner->getPackages(), 'partner_package', true, 'All Service Editions'); // set view $this->view->from = $from; $this->view->to = $to; $this->view->form = $form; $this->view->paginator = $paginator; }
public function userRoleAction() { $client = Infra_ClientHelper::getClient(); $page = $this->_getParam('page', 1); $pageSize = $this->_getParam('pageSize', 10); $config = Zend_Registry::get('config'); $filter = new Kaltura_Client_Type_UserRoleFilter(); $filter->partnerIdEqual = $config->settings->partnerId; $filter->orderBy = Kaltura_Client_Enum_UserOrderBy::CREATED_AT_DESC; $paginatorAdapter = new Infra_FilterPaginator($client->userRole, "listAction", null, $filter); $paginator = new Infra_Paginator($paginatorAdapter); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage($pageSize); $this->view->myEmail = Infra_AuthHelper::getAuthInstance()->getIdentity()->getUser()->email; $this->view->paginator = $paginator; }
/** * This action can only be accessed from the admin console, and passes a KS with which it is possible to access the VAR console */ public function adminLoginAction() { $form = new Form_AdminLogin(); $this->view->form = $form; KalturaLog::debug('creating auth adapter'); $adapter = new Kaltura_VarAuthAdapter(); $adapter->setTimezoneOffset($this->_getParam('timezone_offset')); $adapter->setKS($this->_getParam('ks')); //$adapter = new Zend_Auth_Adapter_DbTable($zendDb); $auth = Infra_AuthHelper::getAuthInstance(); $result = $auth->authenticate($adapter); if ($result->isValid()) { $this->_helper->redirector('list-by-user', 'partner'); } else { $form->setDescription('invalid login'); } $form->setDefault('next_uri', $this->_getParam('next_uri')); // set in Infra_AuthPlugin }
/** * Multi-Publisher Console redirect */ public function mpConsoleRedirectAction() { $partnerId = $this->_getParam('partner_id'); $userId = $this->_getParam('user_id'); $client = Infra_ClientHelper::getClient(); $systemPartnerPlugin = Kaltura_Client_SystemPartner_Plugin::get($client); try { $ks = $systemPartnerPlugin->systemPartner->getAdminSession($partnerId, $userId); } catch (Exception $e) { $this->view->partnerId = $partnerId; $this->view->errorMessage = $e->getMessage(); return; } $url = null; $settings = Zend_Registry::get('config')->settings; if ($settings->mpConsoleUrl) { $url = Infra_ClientHelper::getServiceUrl(); $url .= $settings->mpConsoleUrl; } $identiry = Infra_AuthHelper::getAuthInstance()->getIdentity(); /* @var $identiry Infra_UserIdentity */ $formdata = array('ks' => $ks, 'timezone_offset' => $identiry->getTimezoneOffset()); $url .= '?' . http_build_query($formdata); $this->getResponse()->setRedirect($url); }
public function varConsoleRedirectAction() { $request = $this->getRequest(); $client = Infra_ClientHelper::getClient(); $authorizedPartnerId = $this->_getParam('partner_id'); $email = Infra_AuthHelper::getAuthInstance()->getIdentity()->getUser()->email; $password = Infra_AuthHelper::getAuthInstance()->getIdentity()->getPassword(); $timezoneOffset = Infra_AuthHelper::getAuthInstance()->getIdentity()->getTimezoneOffset(); $adapter = new Infra_AuthAdapter($email, $password, $timezoneOffset, $authorizedPartnerId); $auth = Infra_AuthHelper::getAuthInstance(); $result = $auth->authenticate($adapter); if ($result->isValid()) { $this->_helper->redirector('list', 'partner'); } else { $loginForm->setDescription('login error'); } }
/** * Refresh the list of partners the user is allowed to access. */ public static function refreshCurrentUserAllowedPartners() { if (Infra_AuthHelper::getAuthInstance()->hasIdentity()) { Infra_AuthHelper::getAuthInstance()->getIdentity()->refreshAllowedPartners(); } }
public function varConsoleRedirectAction() { $request = $this->getRequest(); $client = Infra_ClientHelper::getClient(); $authorizedPartnerId = $this->_getParam('partner_id'); $email = Infra_AuthHelper::getAuthInstance()->getIdentity()->getUser()->email; $password = Infra_AuthHelper::getAuthInstance()->getIdentity()->getPassword(); $timezoneOffset = Infra_AuthHelper::getAuthInstance()->getIdentity()->getTimezoneOffset(); $adapter = new Kaltura_VarAuthAdapter(); $adapter->setCredentials($email, $password); $adapter->setPartnerId($authorizedPartnerId); $adapter->setTimezoneOffset($timezoneOffset); $auth = Infra_AuthHelper::getAuthInstance(); $result = $auth->authenticate($adapter); if ($result->isValid()) { $this->_helper->redirector('list', 'partner'); } else { throw new Exception("login failed"); } }
public function setupAction() { $request = $this->getRequest(); $this->view->errors = array(); $this->view->schedulers = array(); $this->view->workers = array(); $client = Infra_ClientHelper::getClient(); if (!$client) { $this->view->errors[] = 'init client failed'; return; } $adminId = Infra_AuthHelper::getAuthInstance()->getIdentity()->getUser()->id; $action = $request->getParam('hdnAction', false); if ($action) { Infra_AclHelper::validateAccess('batch', 'setup-stop-start'); $workerId = $request->getParam('hdnWorkerId', false); $cause = $request->getParam('hdnCause', false); try { switch ($action) { case "stop": $client->batchcontrol->stopWorker($workerId, $adminId, $cause); $this->view->actionDescription .= "Worker [{$workerId}] stop command sent.\n"; break; case "start": $client->batchcontrol->startWorker($workerId, $adminId, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start command sent.\n"; break; case "disable": $configParam = 'enable'; $configValue = '0'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] disable command sent.\n"; break; case "enable": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] enable command sent.\n"; break; case "start-manual": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $configParam = 'autoStart'; $configValue = '0'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start manualy command sent.\n"; break; case "start-auto": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $configParam = 'autoStart'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start automatic command sent.\n"; break; } } catch (Exception $e) { $this->view->errors[] = $e->getMessage(); } } $filter = new Kaltura_Client_Type_ControlPanelCommandFilter(); $filter->createdByIdEqual = $adminId; $filter->statusIn = Kaltura_Client_Enum_ControlPanelCommandStatus::HANDLED . ',' . Kaltura_Client_Enum_ControlPanelCommandStatus::PENDING; $this->view->disabledWorkers = array(); try { $commandsList = $client->batchcontrol->listCommands($filter); foreach ($commandsList->objects as $command) { if ($command->type != Kaltura_Client_Enum_ControlPanelCommandType::CONFIG) { $this->view->disabledWorkers[$command->workerId] = $command; } } } catch (Exception $e) { $this->view->errors[] = $e->getMessage(); } $settings = Zend_Registry::get('config')->settings; $controlCommandsTimeFrame = $settings->controlCommandsTimeFrame * 60; $filter = new Kaltura_Client_Type_ControlPanelCommandFilter(); $filter->createdByIdEqual = $adminId; $filter->createdAtGreaterThanOrEqual = time() - $controlCommandsTimeFrame; try { $commandsList = $client->batchcontrol->listCommands($filter); $this->view->commands = $commandsList->objects; } catch (Exception $e) { $this->view->commands = array(); } try { $schedulersList = $client->batchcontrol->listSchedulers(); $this->view->schedulers = $schedulersList->objects; } catch (Exception $e) { $this->view->schedulers = array(); } try { $workersList = $client->batchcontrol->listWorkers(); $this->view->workers = $workersList->objects; } catch (Exception $e) { $this->view->workers = array(); } }
/** * This action can only be accessed from the admin console, and passes a KS with which it is possible to access the VAR console */ public function adminLoginAction() { $ks = $this->_getParam('ks'); $form = new Form_AdminLogin(); $this->view->form = $form; $client = Infra_ClientHelper::getClient(); $client->setKs($ks); $user = $client->user->get(); /* @var $user Kaltura_Client_Type_User */ $userLoginId = $user->email; $partnerId = $user->partnerId; KalturaLog::debug('creating auth adapter'); $adapter = new Infra_AuthAdapter($userLoginId, null, $form->getValue('timezone_offset'), null, $ks); //$adapter = new Zend_Auth_Adapter_DbTable($zendDb); $auth = Infra_AuthHelper::getAuthInstance(); $result = $auth->authenticate($adapter); if ($result->isValid()) { $this->_helper->redirector('list-by-user', 'partner'); } else { $form->setDescription('invalid login'); } $form->setDefault('next_uri', $this->_getParam('next_uri')); // set in Infra_AuthPlugin }