Exemplo n.º 1
0
 public function apply(App_ListFilter $filterlist)
 {
     if (!($fieldName = $this->getFieldName())) {
         throw new App_ListFilter_Rule_Condition_Exception("Filter field name not defined.");
     }
     $filterName = $this->getFilterField();
     if ($scopeVar = $this->getFromScopeVar()) {
         $filters = $filterlist->getFromScope($scopeVar);
         if (!is_array($filters)) {
             $filters = array($filters);
         }
     } else {
         $filters = $filterlist->getFiltersByFieldName($filterName);
     }
     foreach ($filters as $filter) {
         if (($class = $this->getFilterClass()) && !$filter instanceof $class) {
             continue;
         }
         if ($filterName && $filter->getFieldName() != $filterName) {
             continue;
         }
         if ($this->_checkValue($filter->{'get' . ucfirst($this->getFieldName())}(), $this->getComparedValue())) {
             if ($this->getScopeVar()) {
                 $filterlist->addToScope($this->getScopeVar(), $filter);
             }
             return true;
         }
     }
     return false;
 }
Exemplo n.º 2
0
 public function execute(App_ListFilter $filterlist)
 {
     if (!$this->getFieldName()) {
         throw new App_ListFilter_Rule_Action_Exception("No field name defined on remove filter action.");
     }
     $filterlist->removeFiltersByFieldName($this->getFieldName(), $this->getCount());
 }
Exemplo n.º 3
0
 public function execute(App_ListFilter $filterlist)
 {
     if (!$this->getFieldName()) {
         throw new App_ListFilter_Rule_Action_Exception("No field name defined on add filter action.");
     }
     $filter = App_ListFilter_FilterFactory::createItemFilter($this->getFieldName(), $this->getValue());
     $filterlist->addFilter($filter);
 }
 /**
  * Maps sorting name to field name
  * @param  \App_ListFilter_Interface $filter
  * @return string                    | null
  */
 protected function _mapSortingFieldName(\App_ListFilter $filter)
 {
     if ($filter->getSortingField() === UserSortingFields::FIRST_NAME) {
         return 'firstName_sorting';
     } else {
         if ($filter->getSortingField() === UserSortingFields::LAST_NAME) {
             return 'lastName_sorting';
         }
     }
     return $filter->getSortingField();
 }
function getChildrenAndSendEvent($orgs, $sortFunction = NULL)
{
    $childrenOrgs = array();
    foreach ($orgs as $org) {
        \Application\Model\Mapper\OrganizationMapper::$organizationId = $org->id;
        $filterList = new App_ListFilter();
        $filter = new App_ListFilter_EqualFilter();
        $filter->setFieldName(OrgFilterFields::PARENT_ID);
        $filter->setValue($org->id);
        $filterList->addFilter($filter);
        $childrenOrgs = array_merge($childrenOrgs, findOrgsAndSendEvent($org::CHILDREN_ORG_TYPE, array('filterList' => $filterList), $sortFunction));
    }
    return $childrenOrgs;
}
Exemplo n.º 6
0
 public function __construct($params = array())
 {
     $this->_listFilter = isset($params['filterList']) ? $params['filterList'] : new \App_ListFilter();
     $this->_page = isset($params['paging']['page']) ? $params['paging']['page'] : 1;
     $this->_count = isset($params['paging']['count']) ? $params['paging']['count'] : 0;
     if ($this->_count > 300) {
         set_time_limit(0);
     }
     if (isset($params['totalCount'])) {
         $this->_totalCount = $params['totalCount'];
     }
     if ($this->_listFilter instanceof \App_ListFilter && is_null($this->_totalCount) && $this->_listFilter->getOldCount() !== null) {
         $this->_totalCount = $this->_listFilter->getOldCount();
     }
 }
Exemplo n.º 7
0
 public function testFindAllByProviderSortingRaise202Exception()
 {
     $filters = array('organizationId' => self::PROVIDER_ENABLER_ORG_ID);
     $filterList = new App_ListFilter();
     $filterList->setSortingField(SimSortingFields::MSISDN);
     $filterList->setSortType(App_ListFilter::SORT_TYPE_ASC);
     $filters['filterList'] = $filterList;
     try {
         $sims = $this->simMapper->findAll($filters);
         $sims->getCount();
         $this->assertTrue(false, "Must raise exception");
     } catch (Exception $ex) {
         $this->assertInstanceOf('\\Application\\Model\\Mapper\\Exception\\EricssonException', $ex);
         $this->assertEquals(202, $ex->getCode());
     }
 }
Exemplo n.º 8
0
 /**
  * Route shutdown hook -- Check for router exceptions
  *
  * @param Zend_Controller_Request_Abstract $request
  */
 public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
 {
     $auth = Zend_Auth::getInstance();
     $orgService = \Application\Service\OrgService::getInstance();
     $identity = $auth->getIdentity();
     //Bypass other auth methods
     if ($identity['authType'] != App_Controller_Plugin_Auth::AUTH_TYPE_AUTH_TOKEN) {
         return;
     }
     $front = Zend_Controller_Front::getInstance();
     $bs = $front->getParam('bootstrap');
     // Fetch logs and apply the token to them
     $multilog = $bs->getPluginResource('multiplelog');
     if (empty($identity['impersonation']) || empty($identity['impersonation']['orgId'])) {
         return;
     }
     $orgId = $identity['impersonation']['orgId'];
     $userSrv = UserService::getInstance();
     \App::log()->info($identity['username'] . " is running as " . $orgId . " admin");
     $user = $userSrv->loadByUsername($identity['username']);
     $userSrv->generateImpersonatedUser($user, $identity['impersonation']);
     foreach ($multilog->getLogs() as $log) {
         $log->setEventItem('impersonated', "as {$orgId} admin");
         $log->setEventItem('impersonatedOrgId', "{$orgId}");
         $log->setEventItem('username', $identity['username'] . " as {$orgId} admin");
     }
     //         Application\Model\Mapper\ProtoAbstractMapper::$accountingUserId .= "_impersonated";
     Application\Model\Mapper\ProtoAbstractMapper::$organizationId = $orgId;
     App_ListFilter::addDefaultExtraData('impersonated_org', $orgId);
     $org = OrgService::getInstance()->load($orgId);
     \App::getOrgUserLogged($org);
 }
 public function testSortDesc()
 {
     $this->filterList->setSortingField('fieldName1');
     $this->filterList->setSortType(\App_ListFilter::SORT_TYPE_DESC);
     $result = $this->filterMapper->mapSortingField($this->filterList);
     $this->assertTrue(is_array($result), "Result is array");
     $this->assertArrayHasKey('fieldName1', $result);
     $this->assertEquals($result['fieldName1'], -1);
 }
 public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
 {
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $byPassMethods = array(App_Controller_Plugin_Auth::AUTH_TYPE_LOST_PASSWORD, App_Controller_Plugin_Auth::AUTH_TYPE_ASYNC, App_Controller_Plugin_Auth::AUTH_TYPE_EXTERNAL, App_Controller_Plugin_Auth::AUTH_TYPE_THIRD_PARTY);
     //Bypass some auth methods
     if ($identity['authType'] && in_array($identity['authType'], $byPassMethods)) {
         return;
     }
     $user = App::getUserLogged();
     $org = App::getOrgUserLogged();
     App_ListFilter::addDefaultExtraData('user', $user->getUserName());
 }
Exemplo n.º 11
0
 public static function generateToken($userName, $orgId, $language = 'en')
 {
     // Get tracking token
     $tracking = self::_getResource("trackingtoken");
     if (!$tracking) {
         return;
     }
     // Fetch logs and apply the token to them
     $multilog = self::_getResource('multiplelog');
     foreach ($multilog->getLogs() as $log) {
         $log->setEventItem('token', $tracking->getToken());
     }
     //TODO Why is it here???
     // Refactor: move it to helper
     Application\Model\Mapper\ProtoAbstractMapper::$accountingTransactionPrefix = $tracking->getToken() . '-';
     Application\Model\Mapper\ProtoAbstractMapper::$accountingUserId = $userName;
     Application\Model\Mapper\ProtoAbstractMapper::$language = $language;
     Application\Model\Mapper\AbstractMapper::$organizationId = $orgId;
     App_ListFilter::addDefaultExtraData('user', $userName);
 }
Exemplo n.º 12
0
 protected function _findGroupEricsson(\App_ListFilter $filterList, $data, $paging)
 {
     $group = $filterList->getGroup();
     $filterList->setGroup(null);
     if (!isset($data['maxFirstPages'])) {
         $data['maxFirstPages'] = 0;
     }
     $data['filterList'] = $filterList;
     $groupsData = $this->_findAllEricsson($data);
     foreach ($groupsData as $groupData) {
         if (isset($groupData['label']) && $groupData['label'] == $group) {
             $gFilterList = clone $filterList;
             $gFilterList->setGroup($group);
             $result = $this->_fetchPageEricsson($gFilterList, $paging);
             if ($result) {
                 return $result;
             }
         }
     }
     return array('items' => array(), 'count' => 0);
 }
 /**
  * Creates a sorting array from filter list
  * @param  \App_ListFilter $filterList
  * @return array.
  */
 public function mapSortingField(\App_ListFilter $filterList)
 {
     if ($filterList->getSortingField() === null) {
         return;
     }
     $sorting = array($this->_mapSortingFieldName($filterList) => $filterList->getSortType() === \App_ListFilter::SORT_TYPE_ASC ? 1 : -1);
     return $sorting;
 }
 /**
  * Maps FilterList Highlighting to message const
  * @param  \App_ListFilter $filterList
  * @return integer         | null
  */
 public function mapHighlightingToMessage(\App_ListFilter $filterList)
 {
     return $this->_mapGroupingToMessage($filterList->getHighlighting());
 }
Exemplo n.º 15
0
 public function _initListFilterCache()
 {
     $cache = $this->getResource('cachemanager')->getCache('memcached');
     App_ListFilter::setDefaultCache($cache);
 }
Exemplo n.º 16
0
 public function findLocations(\App_ListFilter $filterList, $numRows = 1000)
 {
     $methodName = 'locationList';
     /**
      * @var $proto \Application\Proto\Inventory\LocationListQuery
      */
     $proto = $this->_createProto($methodName);
     if (!$filterList->getCursor()) {
         $this->_findAllEricsson(array('filterList' => $filterList));
         $filterList->reset();
         if (!$filterList->getCursor()) {
             throw new InvalidArgumentException('Listing sims locations: Invalid query.');
         }
     }
     $proto->setHandler($filterList->getCursor());
     $proto->setMaxNumRows($numRows);
     /**
      * @var $response \Application\Proto\Inventory\LocationListQuery\Response
      */
     $response = $this->_sendRequest($methodName, array('protoMessage' => $proto));
     $this->_checkGetResponse($response, true);
     $result = new Model\ListResultModel();
     $result->setCount(0);
     $responseLocationList = $response->getResponse();
     if ($responseLocationList) {
         $items = $responseLocationList->getRows();
         $its = array();
         foreach ($items as $id => $data) {
             $data = $data->serialize(new Codec\PhpArray());
             $data = $this->_mapEricssonModelToModel($data);
             $its[$id] = new SimModel($data);
         }
         $result->setItems($its);
         if ($responseLocationList->getNumRows() !== null) {
             $result->setCount($responseLocationList->getNumRows());
         }
     }
     return $result;
 }
Exemplo n.º 17
0
 /**
  * Builds a filter list based on params.
  *
  * @param  array          $params
  * @return App_ListFilter
  */
 public function factory(array $params, $filterId, $filterType = null, array $validators = array())
 {
     $filterList = $this->constructFilter($params);
     $filterList->setValidators($validators);
     if (!$filterList->isValid()) {
         $filterList = new \App_ListFilter();
     }
     $filterList->setResourceId($filterId);
     if (!empty($filterType)) {
         $filterList->addExtraData('filterType', $filterType);
     }
     \App::log()->debug('Unused filters [' . implode(',', $this->getUnusedList()) . ']');
     return $filterList;
 }
Exemplo n.º 18
0
 protected function _mapLifeCycleHistoryFilterValue(\App_ListFilter_Interface $filter, \App_ListFilter $filterList)
 {
     $result = array();
     foreach ($filterList->getFilters() as $filter) {
         switch ($filter->getFieldName()) {
             case SimFilterFields::LIFE_CYCLE_HISTORY_START_STATE:
                 $result['start_state'] = \Application\Model\Mapper\LifeCycleMapper::getInstance()->mapLifeCycleStatusToEricsson($filter->getValue());
                 break;
             case SimFilterFields::LIFE_CYCLE_HISTORY_END_STATE:
                 $result['end_state'] = \Application\Model\Mapper\LifeCycleMapper::getInstance()->mapLifeCycleStatusToEricsson($filter->getValue());
                 break;
             case SimFilterFields::LIFE_CYCLE_HISTORY_INTERVAL:
                 if ($filter instanceof \App_ListFilter_BetweenFilter) {
                     if (!$filter->getMin() && !$filter->getMax()) {
                         $result['interval'] = array();
                     } else {
                         $result['interval'] = array('start_date' => $filter->getMin(), 'end_date' => $filter->getMax());
                     }
                 } elseif ($filter instanceof \App_ListFilter_GreaterThanFilter) {
                     $result['interval'] = array('start_date' => $filter->getValue());
                 } elseif ($filter instanceof \App_ListFilter_LessThanFilter) {
                     $result['interval'] = array('end_date' => $filter->getValue());
                 }
                 break;
         }
     }
     return $result;
 }
Exemplo n.º 19
0
 /**
  * Set a default cache
  * @param Zend_Cache_Core $cache
  */
 public static function setDefaultCache(Zend_Cache_Core $cache)
 {
     self::$_defaultCache = $cache;
     return;
 }
Exemplo n.º 20
0
 /**
  * Obtain the history of the Sim life cycle
  *
  * @param  \Application\Model\SimModel $sim
  * @param  \App_ListFilter             $filterList
  * @return array
  */
 public function historyLifeCycle(SimModel $sim, \App_ListFilter $filterList)
 {
     $from = $filterList->getOneFilterValueByFieldName(StatusHistoryFilterFields::START_DATE);
     $until = $filterList->getOneFilterValueByFieldName(StatusHistoryFilterFields::END_DATE);
     if (NULL !== $from) {
         $date = new \DateTime($from, new \DateTimeZone('GMT'));
         $from = $date->format('Y-m-d');
     }
     if (NULL !== $until) {
         $date = new \DateTime($until, new \DateTimeZone('GMT'));
         $until = $date->format('Y-m-d');
     }
     $data = $this->getMapper()->getLifeCycleHistory($sim, $from, $until);
     return $data;
 }
Exemplo n.º 21
0
 protected function _mapFilterListPaging(\App_ListFilter $filterList, $paging)
 {
     $params = array();
     foreach ($filterList->getFilters() as $filter) {
         $params[$filter->getFieldName()] = $this->mapFilter($filter);
     }
     if (isset($paging['count'])) {
         $params['_count'] = $paging['count'];
     }
     if (isset($paging['page'])) {
         $params['_page'] = $paging['page'];
     }
     return $params;
 }
 public function buildFilterList(array $params, $throwEx = false)
 {
     $factory = new \App_ListFilter_FilterFactory();
     $factory->setWhiteList(CommercialGroupFilterFields::getWhiteList());
     $filterList = $factory->constructFilter($params);
     $filterList->setThrowExceptionOnValidationFail($throwEx);
     $filterList->setValidators(CommercialGroupFilterFields::getValidatorSpec());
     if (!$filterList->isValid()) {
         $filterList = new \App_ListFilter();
     }
     $filterList->setResourceId(CommercialGroupFilterFields::getResourceId());
     $filterList->addExtraData('filterType', 'commercialGroup');
     \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']');
     return $filterList;
 }
 /**
  * Fetch page from Ericsson
  *
  * @param \App_ListFilter $filterList
  * @param Paging $paging
  * @return array Like array('items' => arrayOfItems)
  */
 public function _fetchPageEricsson(\App_ListFilter $filterList, Paging $paging)
 {
     $id = $this->_getFetchPageCacheId($filterList->getCursor(), $paging->getPageSize(), $paging->getNpage());
     if ($data = $this->getCache()->load($id)) {
         return $data;
     }
     $rows = $this->_fecthPageEricssonProto($filterList, $paging);
     if ($rows) {
         \App::log()->debug("[ListFromCursor] Fetched page from cursor.");
         $filterList->touchCursor();
         return $this->_processList($rows, $filterList->getOldCount(), $filterList, $paging);
     }
     return false;
 }
Exemplo n.º 24
0
 public function testScopeCleanOk()
 {
     $listFilter = new App_ListFilter();
     $listFilter->addToScope('scopeVar1', 'scopeValue1');
     $listFilter->addToScope('scopeVar2', 'scopeValue2');
     $listFilter->addToScope('scopeVar3', 'scopeValue3');
     $listFilter->addToScope('scopeVar4', 'scopeValue4');
     $listFilter->addToScope('scopeVar5', 'scopeValue5');
     $this->assertEquals('scopeValue1', $listFilter->getFromScope('scopeVar1'));
     $this->assertEquals('scopeValue2', $listFilter->getFromScope('scopeVar2'));
     $this->assertEquals('scopeValue3', $listFilter->getFromScope('scopeVar3'));
     $this->assertEquals('scopeValue4', $listFilter->getFromScope('scopeVar4'));
     $this->assertEquals('scopeValue5', $listFilter->getFromScope('scopeVar5'));
     $listFilter->clearScope();
     $this->assertNull($listFilter->getFromScope('scopeVar1'));
     $this->assertNull($listFilter->getFromScope('scopeVar2'));
     $this->assertNull($listFilter->getFromScope('scopeVar3'));
     $this->assertNull($listFilter->getFromScope('scopeVar4'));
     $this->assertNull($listFilter->getFromScope('scopeVar5'));
 }
Exemplo n.º 25
0
 /**
  * Builds a filter list based on params.
  * @param  array          $params
  * @return App_ListFilter | null
  */
 public function buildFilterList(array $params)
 {
     /**
      * Check if ICC parameter exists and if it's valid
      */
     /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
        if (!empty($params['icc'])) {
            if (!$this->luhn($params['icc'])) {
                throw new AppEx\InvalidArgumentException('Invalid search query');
            }
        }
        */
     /**
      * Check if IMSI parameter exists and if it's valid
      */
     if (!empty($params['imsi'])) {
         $imsis = explode('<>', $params['imsi']);
         if (count($imsis) == 2) {
             /**
              * Is it a range of IMSIs?
              */
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                if (preg_match('/^[0-9]{15}$/', trim($imsis[0])) &&
                    preg_match('/^[0-9]{15}$/', trim($imsis[1]))) {
                */
             $params['imsi'] = $imsis[0] . '<>' . $imsis[1];
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                } else {
                    throw new AppEx\InvalidArgumentException('Invalid search query');
                }
                */
         } else {
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                if (!preg_match('/^[0-9]{15}$/', trim($params['imsi']))) {
                    throw new AppEx\InvalidArgumentException('Invalid search query');
                }
                */
         }
     }
     $factory = new \App_ListFilter_FilterFactory();
     $factory->setWhiteList(StockFilterFields::getWhiteList());
     $factory->getSortingWhiteList(StockSortingFields::getWhiteList());
     $filterList = $factory->constructFilter($params);
     if (!$filterList->isValid()) {
         $filterList = new \App_ListFilter();
     }
     $filterList->setResourceId(StockFilterFields::getResourceId());
     $filterList->addExtraData('filterType', 'stock');
     \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']');
     return $filterList;
 }
Exemplo n.º 26
0
 public function apply(App_ListFilter $filterlist)
 {
     return $this->_checkValue($filterlist->getGrouping(), $this->getComparedValue());
 }