Source for file FileProxy.php
Documentation is available at FileProxy.php
* Class Proxy de type feature server
* @author Julien-Samuel Lacroix
* @copyright 2010, Mapgears inc
* @license http://www.geoprisma.org/license BSD License
* @link http://www.geoprisma.org
* Class Proxy de type feature server
* @author Julien-Samuel Lacroix
if (isset
($_REQUEST['path']) &&
$_REQUEST['path'])
'\\', '/', preg_replace('/^root\/?/', '', $_REQUEST['path'])
* Retourne la liste de layer accèder par la query
$objArrayLayers =
new ArrayObject();
$objArrayLayers->append($strLayer);
* 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->getLayers() :
$pobjArrayLayers;
foreach ($objArrayLayers as $strLayer)
foreach ($objArrayResources as $objResource)
$objDatastore =
$objResource->getDatastore($objService);
if (self::isAuthorizedLayer($objDatastore, $strLayer))
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:16 -0500 by phpDocumentor 1.4.1