public function findAll($filters = array(), $options = array()) { $data = array(); if (OrganizationMapper::getTypeByOrgId(self::$organizationId) === OrgServiceProviderModel::ORG_TYPE) { if (isset($filters['filterList']) && $filters['filterList'] instanceof \App_ListFilter) { $data['filterList'] = $filters['filterList']; } else { $data['filterList'] = new \App_ListFilter(); } $data['paging'] = $options; $itemData = $this->_findAllEricsson($data); } else { $itemData = $this->_findAllCustomerEricsson(); } $items = array(); foreach ($itemData['items'] as $id => $data) { $items[$id] = new Model\PreBillModel($data); } $result = new Model\ListResultModel(); $result->setItems($items); if (isset($itemData['count'])) { $result->setCount($itemData['count']); } return $result; }
/** * User dependencies injection */ public static function initUserAccount() { $ident = \Zend_Auth::getInstance()->getIdentity(); // Transaction injection \App::get("trackingtoken"); ProtoAbstractMapper::$accountingTransactionPrefix = 'Testing-'; // User injection ProtoAbstractMapper::$accountingUserId = $ident['id']; ProtoAbstractMapper::$language = 'en'; $user = \App::getUserLogged(null, true); $allowed = Zend_Controller_Action_HelperBroker::getStaticHelper('allowed'); $allowed->setUser($user); AbstractMapper::$organizationId = $user->organizationId; // Org injection if (!empty($ident['orgId'])) { $org = OrgService::getInstance()->load($ident['orgId']); if (!$org) { $org = OrgModelFactory::factory(array('id' => $ident['orgId'], 'type' => OrganizationMapper::getTypeByOrgId($ident['orgId']))); } \App::getOrgUserLogged($org); AbstractMapper::$organizationId = $ident['orgId']; } WatcherMapper::getInstance()->destroySingleton(); }
/** * Validate that report organization is a customer * * @param array $params */ protected function _validateCustomerOrg(array &$params, $type = null) { $orgId = \App::getOrgUserLogged()->id; switch (Mapper\OrganizationMapper::getTypeByOrgId($orgId)) { case Model\Organization\OrgCustomerModel::ORG_TYPE: $params[ReportFilterFields::ORGANIZATION] = $orgId; break; case Model\Organization\OrgServiceProviderModel::ORG_TYPE: $this->_validateMandatoryParams($params, array(ReportFilterFields::ORGANIZATION)); break; } if (Mapper\OrganizationMapper::getTypeByOrgId($params[ReportFilterFields::ORGANIZATION]) !== Model\Organization\OrgCustomerModel::ORG_TYPE) { throw new InvalidArgumentException('Invalid parameter value: ' . ReportFilterFields::ORGANIZATION . '. Supported values are customer-xxxxx'); } }
protected function _constructProtoSubscriptionSnapshotReportEricsson($params, $proto) { $orgId = OrganizationMapper::cleanOrgId($params['orgId']); $orgType = OrganizationMapper::getTypeByOrgId($params['orgId']); switch ($orgType) { case OrgMasterModel::ORG_TYPE: $type = PbOrg\OrgType::MASTER; break; case OrgServiceProviderModel::ORG_TYPE: $type = PbOrg\OrgType::SERVICE_PROVIDER; break; case OrgCustomerModel::ORG_TYPE: $type = PbOrg\OrgType::CUSTOMER; break; default: throw new InvalidArgumentException("Invalid organization type " . $orgType); } $target = new PbReport\Target\DailySSTarget(); $targetOrg = new PbOrg(); $targetOrg->setType($type); $targetOrg->setId($orgId); $target->setOrganization($targetOrg); $proto->setTarget($target); $proto->setDateDaily($params['dateDaily']); return $proto; }
/** * Returns true if and only if the assertion conditions are met * * This method is passed the ACL, Role, Resource, and privilege to which * the authorization query applies. If the $role, $resource, or $privilege * parameters are null, it means that the query applies to all Roles, * Resources, or privileges, respectively. * * @param Zend_Acl $acl * @param Zend_Acl_Role_Interface $role * @param Zend_Acl_Resource_Interface $resource * @param string $privilege * @return boolean */ public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null) { // We need specific objects to check against each other if (NULL === $role || NULL === $resource) { return false; } // Ensure we're handled User models if (!$role instanceof UserModel) { throw new Exception('Role must be an instance of UserModel'); } $orgId = $role->getOrganizationId(); switch (true) { case $resource instanceof OrgModelAbstract: return $orgId === $resource->getId(); case $resource instanceof UserModel: case $resource instanceof TemplateModel: return $orgId === $resource->getOrganizationId(); case $resource instanceof Async\Model\AsyncResponse: $cOrgId = \Application\Model\Mapper\OrganizationMapper::cleanOrgId($orgId); return $orgId === $resource->getOrganizationId() || $cOrgId === $resource->getOrganizationId(); case $resource instanceof Model\TariffPlanLifeCycleModel: case $resource instanceof Model\TariffPlanServicesModel: case $resource instanceof Model\RestrictionModel: case $resource instanceof Model\ServicePackModel: $orgType = Model\Mapper\OrganizationMapper::getTypeByOrgId($orgId); switch ($orgType) { case Model\Organization\OrgServiceProviderModel::ORG_TYPE: return $orgId === $resource->getServiceProviderId(); case Model\Organization\OrgCustomerModel::ORG_TYPE: // $spList = Service\ServicePackService::getInstance()->listAll(); // foreach ($spList->getItems() as $sp) { // if ($sp->getId() === $resource->getId()) { // return true; // } // } /* * There is no way to know if only one ServicePack is assigned to a customer, * only retrieving all servicePacks assigned. It is too much slow. In Ericsson we trust. */ return true; default: return false; } case $resource instanceof Model\SupplServicesModel: return $orgId === $resource->getServiceProviderId() || $orgId === $resource->getCustomerId(); case $resource instanceof Model\CommercialGroupModel: case $resource instanceof Model\SupervisionGroupModel: return $orgId === $resource->getCustomerId(); case $resource instanceof SimModel: /** @var $resource \Application\Model\SimModel */ return $orgId === $resource->getMasterId() || $orgId === $resource->getServiceProviderCommercialId() || $orgId === $resource->getServiceProviderEnablerId() || $orgId === $resource->getAggregatorId() || $orgId === $resource->getCustomerId() || $orgId === $resource->getEndUserId(); case $resource instanceof Model\ReportModel: $params = $resource->getParams(); if (isset($params['orgId']) && !empty($params['orgId'])) { return $orgId === $params['orgId']; } else { return true; } } throw new Exception('Resource must be an instance of OrgModelAbstract, UserModel or SimModel'); }
/** * Maps a range message value. * @param \App_ListFilter_Interface $filter * @return array */ protected function _mapOrganizationValue(\App_ListFilter_Interface $filter, \App_ListFilter $filterList) { $orgTypeMap = array(OrgSuperModel::ORG_TYPE => Organization\OrgType::MASTER, OrgMasterModel::ORG_TYPE => Organization\OrgType::MASTER, OrgServiceProviderModel::ORG_TYPE => Organization\OrgType::SERVICE_PROVIDER, OrgCustomerModel::ORG_TYPE => Organization\OrgType::CUSTOMER); $data = array(); switch (get_class($filter)) { case 'App_ListFilter_EqualFilter': $data['type'] = $orgTypeMap[OrganizationMapper::getTypeByOrgId($filter->getValue())]; $data['id'] = OrganizationMapper::cleanOrgId($filter->getValue()); break; default: return; } return $data; }
protected function _createSubscriptionBaseTarget(\App_ListFilter $filterList) { $data = array(); $proto = '\\Application\\Proto\\Report\\Target\\SubscriptionBaseTarget'; $this->_setFilter($data, $filterList, ReportFilterFields::ORGANIZATION, $proto, 'id', true); $orgId = $filterList->getOneFilterByFieldName(ReportFilterFields::ORGANIZATION)->getValue(); $filterOrgType = new \App_ListFilter_EqualFilter(); $filterOrgType->setFieldName('type'); $filterOrgType->setValue(OrganizationMapper::getTypeByOrgId($orgId)); $filterList->addFilters(array($filterOrgType)); $this->_setFilter($data, $filterList, 'type', $proto, 'type', true); return array('subscription_base' => $data); }
public function getTypeById($id) { return \Application\Model\Mapper\OrganizationMapper::getTypeByOrgId($id); }
protected function _prepareExternalRequest() { $ident = \Zend_Auth::getInstance()->getIdentity(); if ($ident['authType'] === \App_Controller_Plugin_Auth::AUTH_TYPE_EXTERNAL) { $orgType = \Application\Model\Mapper\OrganizationMapper::getTypeByOrgId($ident['orgId']); if ($orgType === \Application\Model\Organization\OrgServiceProviderModel::ORG_TYPE) { $appId = '9876543210'; // provider } else { $appId = '1234567890'; // customer } $this->getRequest()->setHeader('TransactionInfo', 'appid="' . $appId . '"'); } }
/** * Creates a organization proto message from organizationId * * @param \Application\Proto\Organization $orgId */ protected function _createOrganization($orgId) { $orgTypeMap = array(OrgSuperModel::ORG_TYPE => Organization\OrgType::MASTER, OrgMasterModel::ORG_TYPE => Organization\OrgType::MASTER, OrgServiceProviderModel::ORG_TYPE => Organization\OrgType::SERVICE_PROVIDER, OrgCustomerModel::ORG_TYPE => Organization\OrgType::CUSTOMER, OrgAggregatorModel::ORG_TYPE => Organization\OrgType::AGGREGATOR); $type = OrganizationMapper::getTypeByOrgId($orgId); if (!isset($orgTypeMap[$type])) { return null; } $orgType = $orgTypeMap[$type]; if ($type != OrgSuperModel::ORG_TYPE) { $orgId = OrganizationMapper::cleanOrgId($orgId); } else { $orgId = substr($orgId, 0, 32); if (strlen($orgId) < 32) { $orgId .= str_repeat('0', 32 - strlen($orgId)); } } $org = new Organization(); $org->setType($orgType); $org->setId($orgId); return $org; }