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;
 }
Example #2
0
 public static function getKs()
 {
     if (Infra_AuthHelper::getAuthInstance()->hasIdentity()) {
         $ks = Infra_AuthHelper::getAuthInstance()->getIdentity()->getKs();
     } else {
         $ks = null;
     }
     return $ks;
 }
Example #3
0
 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());
 }
Example #6
0
 /**
  * @param string $namespace
  */
 public static function setNamespace($namespace = null)
 {
     self::$defined = true;
     $settings = Zend_Registry::get("config")->settings;
     if (!$namespace) {
         $namespace = isset($settings->cookieNameSpace) ? $settings->cookieNameSpace : Zend_Auth_Storage_Session::NAMESPACE_DEFAULT;
     }
     if ($settings->sessionSavePath) {
         session_save_path($settings->sessionSavePath);
     }
     $auth = Zend_Auth::getInstance();
     $storage = new Zend_Auth_Storage_Session($namespace);
     $auth->setStorage($storage);
     foreach (self::$nameSpaceChangedCallbacks as $callback) {
         call_user_func($callback, $callback);
     }
 }
 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;
 }
Example #8
0
 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;
 }
Example #9
0
 /**
  * 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
 }
Example #10
0
 /**
  * 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');
     }
 }
Example #12
0
 /**
  * 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();
     }
 }
Example #13
0
 public function __construct($data, $locale = null, array $options = array())
 {
     parent::__construct($data, $locale, $options);
     Infra_AuthHelper::registerNamespaceChangedCallback(array($this, 'reload'), 'Infra_TranslateAdapter::reload');
 }
Example #14
0
 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");
     }
 }
Example #15
0
 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
 }