Source for file FileGetProxy.php
Documentation is available at FileGetProxy.php
* Class Proxy file when request is a get
* @author Julien-Samuel Lacroix
* @copyright 2010, Mapgears
* @license http://www.geoprisma.org/license BSD License
* @link http://www.geoprisma.org
* Class Proxy file when request is a get
* @author Julien-Samuel Lacroix
private $m_objArrayAvailableLayers =
array();
private $m_objArrayAvailableResources =
array();
* Foward the call end return the result
echo
$objFileTree->get($strFilePath, $this->m_objArrayAvailableLayers, $this->m_objArrayAvailableResources);
* Retourne le nom de l'action réaliser par le proxy (Create - Read - Update - Delete)
* Retourne la liste de layer accèder par la query
private function getInlineLayers()
$objArrayLayers =
array();
$objArrayLayers =
$objFileTree->getFileList($strFilePath);
return new ArrayObject($objArrayLayers);
* Returns an array of org_geoprisma_resource_Resource objects being accessed
* @param org_geoprisma_config_Config &$pobjConfig The config object
* @param array $pobjRequest The request array that
* contains the 'osmservice'
* parameters. Defaults to
$objRequest =
($pobjRequest) ?
$pobjRequest :
$_REQUEST;
if (!isset
($objRequest['osmservice']))
throw
new Exception("osmservice param is missing");
// In the case of a get, we need to work with all the resources
// available for this service
$objArrayResource =
Array();
$objConfigResources =
$pobjConfig->getResources();
foreach ($objConfigResources as $objResource)
$objArrayResource[] =
$objResource;
return $objArrayResource;
* Validate the 'layers' being accessed by the query. Each layer must be
* present in one of the specified resource datastore using a specified
* @param org_geoprisma_service_Service $pobjService The service to
* @param ArrayObject $pobjArrayResources ArrayObject of
* @param ArrayObject $pobjArrayLayers ArrayObject of
$pobjArrayResources=
null,
$objService =
($pobjService ===
null) ?
$this->getService() :
$pobjService;
$objArrayResources =
($pobjArrayResources ===
null) ?
$this->getResources() :
$pobjArrayResources;
$objArrayLayers =
($pobjArrayLayers ===
null) ?
$this->getInlineLayers() :
$pobjArrayLayers;
if (substr($strFilePath, -
1) !=
'/' &&
strlen($strFilePath) >
0)
foreach ($objArrayLayers as $strLayer)
foreach ($objArrayResources as $objResource)
$objDatastore =
$objResource->getDatastore($objService);
if (self::isAuthorizedLayer($objDatastore, $strFilePath.
$strLayer))
$this->m_objArrayAvailableLayers[] =
$strLayer;
$this->m_objArrayAvailableResources[$strLayer] =
$objResource->getName();
if (count($this->m_objArrayAvailableLayers) <=
0)
throw
new Exception('Not Authorized by Datastore layer');
* Validate if the layer is accessible in this datastore.
* @param org_geoprisma_datastore_Datastore $pobjDatastore Datastore
* @param String $pstrLayer Layer name
private static function isAuthorizedLayer($pobjDatastore, $pstrLayer)
$objArrayDSLayers =
$pobjDatastore->getLayers();
foreach ($objArrayDSLayers as $strDSLayer)
if (substr($strDSLayer, -
1) ==
'/')
$strDSLayer =
substr($strDSLayer, 0, -
1);
$objArrayDSPath =
explode('/', $strDSLayer);
$objArrayLayerPath =
explode('/', $pstrLayer);
$iNumDSPathNode =
count($objArrayDSPath);
$iNumLayerPathNode =
count($objArrayLayerPath);
$iNumPathNode =
min($iNumDSPathNode, $iNumLayerPathNode);
for ($iIter=
0; $iIter<
$iNumPathNode; $iIter++
)
if ($objArrayDSPath[$iIter] !=
$objArrayLayerPath[$iIter])
if (($iIter+
1) >=
$iNumPathNode)
Documentation generated on Mon, 20 Feb 2012 13:46:15 -0500 by phpDocumentor 1.4.1