[Mapbender-commits] r2913 - branches/2.5/owsproxy/http

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Sep 4 08:37:00 EDT 2008


Author: astrid_emde
Date: 2008-09-04 08:37:00 -0400 (Thu, 04 Sep 2008)
New Revision: 2913

Modified:
   branches/2.5/owsproxy/http/index.php
Log:
case 'getmap' || 'map' added 'map' to support WMS Version 1.0.0

Modified: branches/2.5/owsproxy/http/index.php
===================================================================
--- branches/2.5/owsproxy/http/index.php	2008-09-04 08:32:27 UTC (rev 2912)
+++ branches/2.5/owsproxy/http/index.php	2008-09-04 12:37:00 UTC (rev 2913)
@@ -2,7 +2,7 @@
 # $Id$
 # http://www.mapbender.org/index.php/Owsproxy
 # Module maintainer Uli
-# Copyright (C) 2002 CCGIS 
+# Copyright (C) 2002 CCGIS
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -30,7 +30,7 @@
 
 $con = db_connect(DBSERVER,OWNER,PW);
 db_select_db(DB,$con);
-
+
 $postdata = $HTTP_RAW_POST_DATA;
 
 $owsproxyService = $_REQUEST['wms']; //ToDo: change this to 'service' in the apache url-rewriting
@@ -40,506 +40,506 @@
 $reqParams = $query->getRequestParams();
 
 $notice = new mb_notice("owsproxy id:".$query->getOwsproxyServiceId());
-
+
 // check session
 session_id($_REQUEST["sid"]);
 session_start();
 if(!$_SESSION['mb_user_id']){
-	$notice = new mb_notice("Permission denied");
-	throwE("Permission denied");
-	die();
+        $notice = new mb_notice("Permission denied");
+        throwE("Permission denied");
+        die();
 }
 
 //if($_SESSION['mb_user_ip'] != $_SERVER['REMOTE_ADDR']){
-//	throwE(array("No session data available.","Permission denied.","Please authenticate."));
-//	die();	
+//        throwE(array("No session data available.","Permission denied.","Please authenticate."));
+//        die();
 //}
 
 /*************  workflow ************/
-$n = new administration();
+$n = new administration();
 switch (strtolower($reqParams['request'])) {
-	case 'getcapabilities':
-		$arrayOnlineresources = checkWmsPermission($query->getOwsproxyServiceId());
-		$query->setOnlineResource($arrayOnlineresources['wms_getcapabilities']);
-		$request = $query->getRequest();
-		getCapabilities($request);
-		break;
-	case 'getfeatureinfo':
-		$arrayOnlineresources = checkWmsPermission($query->getOwsproxyServiceId());
-		$query->setOnlineResource($arrayOnlineresources['wms_getfeatureinfo']);
-		$request = $query->getRequest();
-		getFeatureInfo($request);
-		break;
-	case 'getmap':
-		$arrayOnlineresources = checkWmsPermission($owsproxyService);
-		$query->setOnlineResource($arrayOnlineresources['wms_getmap']);
-		$layers = checkLayerPermission($arrayOnlineresources['wms_id'],$reqParams['layers']);
-		if($layers===""){
-			throwE("Permission denied");
-			die();
-		}
-		$query->setParam("layers",$layers);
-		$request = $query->getRequest();
-		getImage($request);
-		break;
-	case 'getlegendgraphic':
-		$url = getLegendUrl($query->getOwsproxyServiceId());
-		getImage($url);
-		break;
-	case 'external':
-		getExternalRequest($query->getOwsproxyServiceId());
-		break; 
-	case 'getfeature':
-		$arrayFeatures = array($reqParams['typename']);
-		$arrayOnlineresources = checkWfsPermission($query->getOwsproxyServiceId(), $arrayFeatures);
-		$query->setOnlineResource($arrayOnlineresources['wfs_getfeature']);
-		$request = $query->getRequest();
-		$request = stripslashes($request);
-		getFeature($request);
-		break;
-	// case wfs transaction (because of raw POST the request param is empty)
-	case '':
-		$arrayFeatures = getWfsFeaturesFromTransaction($HTTP_RAW_POST_DATA);
-		$arrayOnlineresources = checkWfsPermission($query->getOwsproxyServiceId(), $arrayFeatures);
-		$query->setOnlineResource($arrayOnlineresources['wfs_transaction']);
-		$request = $query->getRequest();
-		doTransaction($request, $HTTP_RAW_POST_DATA);
-		break;
-	default:
-		
+        case 'getcapabilities':
+                $arrayOnlineresources = checkWmsPermission($query->getOwsproxyServiceId());
+                $query->setOnlineResource($arrayOnlineresources['wms_getcapabilities']);
+                $request = $query->getRequest();
+                getCapabilities($request);
+                break;
+        case 'getfeatureinfo':
+                $arrayOnlineresources = checkWmsPermission($query->getOwsproxyServiceId());
+                $query->setOnlineResource($arrayOnlineresources['wms_getfeatureinfo']);
+                $request = $query->getRequest();
+                getFeatureInfo($request);
+                break;
+        case 'getmap' || 'map':
+                $arrayOnlineresources = checkWmsPermission($owsproxyService);
+                $query->setOnlineResource($arrayOnlineresources['wms_getmap']);
+                $layers = checkLayerPermission($arrayOnlineresources['wms_id'],$reqParams['layers']);
+                if($layers===""){
+                        throwE("Permission denied");
+                        die();
+                }
+                $query->setParam("layers",$layers);
+                $request = $query->getRequest();
+                getImage($request);
+                break;
+        case 'getlegendgraphic':
+                $url = getLegendUrl($query->getOwsproxyServiceId());
+                getImage($url);
+                break;
+        case 'external':
+                getExternalRequest($query->getOwsproxyServiceId());
+                break;
+        case 'getfeature':
+                $arrayFeatures = array($reqParams['typename']);
+                $arrayOnlineresources = checkWfsPermission($query->getOwsproxyServiceId(), $arrayFeatures);
+                $query->setOnlineResource($arrayOnlineresources['wfs_getfeature']);
+                $request = $query->getRequest();
+                $request = stripslashes($request);
+                getFeature($request);
+                break;
+        // case wfs transaction (because of raw POST the request param is empty)
+        case '':
+                $arrayFeatures = getWfsFeaturesFromTransaction($HTTP_RAW_POST_DATA);
+                $arrayOnlineresources = checkWfsPermission($query->getOwsproxyServiceId(), $arrayFeatures);
+                $query->setOnlineResource($arrayOnlineresources['wfs_transaction']);
+                $request = $query->getRequest();
+                doTransaction($request, $HTTP_RAW_POST_DATA);
+                break;
+        default:
+
 }
 /*********************************************************/
 function throwE($e){
-	global $reqParams, $imageformats;
-	if(in_array($reqParams['format'],$imageformats)){
-		throwImage($e);
-	}
-	else{
-		throwText($e);	
-	}
-}
+        global $reqParams, $imageformats;
+        if(in_array($reqParams['format'],$imageformats)){
+                throwImage($e);
+        }
+        else{
+                throwText($e);
+        }
+}
 
 function throwImage($e){
-	global $width,$height;
-	$image = imagecreate($width,$height);
-	$transparent = ImageColorAllocate($image,155,155,155); 
-	ImageFilledRectangle($image,0,0,$width,$height,$transparent);
-	imagecolortransparent($image, $transparent);
-	$text_color = ImageColorAllocate ($image, 233, 14, 91);
-	for($i=0; $i<count($e); $i++){
-		ImageString ($image, 3, 5, $i*20, $e[$i], $text_color);
-	}
-	responseImage($image);
+        global $width,$height;
+        $image = imagecreate($width,$height);
+        $transparent = ImageColorAllocate($image,155,155,155);
+        ImageFilledRectangle($image,0,0,$width,$height,$transparent);
+        imagecolortransparent($image, $transparent);
+        $text_color = ImageColorAllocate ($image, 233, 14, 91);
+        for($i=0; $i<count($e); $i++){
+                ImageString ($image, 3, 5, $i*20, $e[$i], $text_color);
+        }
+        responseImage($image);
 }
 function throwText($e){
-	echo join(" ", $e);
+        echo join(" ", $e);
 }
 function responseImage($im){
-	global $reqParams;
-	$format = $reqParams['format'];
-	if($format == 'image/png'){header("Content-Type: image/png");}
-	if($format == 'image/jpeg' || $format == 'image/jpg'){header("Content-Type: image/jpeg");}
-	if($format == 'image/gif'){header("Content-Type: image/gif");}
-		 
-	if($format == 'image/png'){imagepng($im);}
-	if($format == 'image/jpeg' || $format == 'image/jpg'){imagejpeg($im);}
-	if($format == 'image/gif'){imagegif($im);}	
+        global $reqParams;
+        $format = $reqParams['format'];
+        if($format == 'image/png'){header("Content-Type: image/png");}
+        if($format == 'image/jpeg' || $format == 'image/jpg'){header("Content-Type: image/jpeg");}
+        if($format == 'image/gif'){header("Content-Type: image/gif");}
+
+        if($format == 'image/png'){imagepng($im);}
+        if($format == 'image/jpeg' || $format == 'image/jpg'){imagejpeg($im);}
+        if($format == 'image/gif'){imagegif($im);}
 }
 function completeURL($url){
-	global $reqParams;
-	$mykeys = array_keys($reqParams);
-	for($i=0; $i<count($mykeys);$i++){
-		if($i > 0){ $url .= "&"; }
-		$url .= $mykeys[$i]."=".urlencode($reqParams[$mykeys[$i]]);
-	}
-	return $url;
+        global $reqParams;
+        $mykeys = array_keys($reqParams);
+        for($i=0; $i<count($mykeys);$i++){
+                if($i > 0){ $url .= "&"; }
+                $url .= $mykeys[$i]."=".urlencode($reqParams[$mykeys[$i]]);
+        }
+        return $url;
 }
-
-/**
- * fetch and returns an image to client
- * 
- * @param string the original url of the image to send
- */
 
+/**
+ * fetch and returns an image to client
+ *
+ * @param string the original url of the image to send
+ */
+
 function getImage($or){
-	global $reqParams;
-	header("Content-Type: ".$reqParams['format']);
-	echo getDocumentContent($or);
+        global $reqParams;
+        header("Content-Type: ".$reqParams['format']);
+        echo getDocumentContent($or);
 }
 
 /**
  * fetchs and returns the content of the FeatureInfo Response
- * 
+ *
  * @param string the url of the FeatureInfoRequest
  * @return string the content of the FeatureInfo document
  */
 function getFeatureInfo($url){
-	global $info_format;
-	//$e = new mb_notice("owsproxy: Try to fetch FeatureInfoRequest: ".$url);
-	header("Content-Type: ".$info_format);
-	$content = getDocumentContent($url);
-	$content = matchUrls($content);
-	echo $content;
-}
-
-/**
- * fetchs and returns the content of WFS GetFeature response
- * 
- * @param string the url of the GetFeature request
- * @return echo the content of the GetFeature document
- */
-function getFeature($url){
-	global $info_format;
-
-	header("Content-Type: ".$info_format);
-	$content = getDocumentContent($url);
-	$content = matchUrls($content);
-	echo $content;
-}
-
-/**
- * simulates a post request to host
- * 
- * @param string host to send the request to
- * @param string port of host to send the request to
- * @param string method to send data (should be "POST")
- * @param string path on host
- * @param string data to send to host
- * @return string hosts response
- */
-
-function sendToHost($host,$port,$method,$path,$data){
-	$buf = '';
-    if (empty($method)) $method = 'POST';
-    $method = mb_strtoupper($method);
-    $fp = fsockopen($host, $port);
-    fputs($fp, "$method $path HTTP/1.1\r\n");
-    fputs($fp, "Host: $host\r\n");
-    fputs($fp,"Content-type: application/xml\r\n");
-    fputs($fp, "Content-length: " . strlen($data) . "\r\n");
-    fputs($fp, "Connection: close\r\n\r\n");
-    if ($method == 'POST') fputs($fp, $data);
-    while (!feof($fp)) $buf .= fgets($fp,4096);
-    fclose($fp);
-    return $buf;
-}
-
-/**
- * get wfs featurenames that are touched by a tansaction request defined in XML $data
- * 
- * @param string XML that contains the tansaction request
- * @return array array of touched feature names
- */
-
-function getWfsFeaturesFromTransaction($data){
-	$features = array();
-	$values = NULL;
-	$tags = NULL;
-	$parser = xml_parser_create();
-	xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
-	xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
-	xml_parse_into_struct($parser,$data,$values,$tags);
-
-	$code = xml_get_error_code ($parser);
-	if ($code) {
-		$line = xml_get_current_line_number($parser);
-		$col = xml_get_current_column_number($parser);
-		$mb_exception = new mb_exception("OWSPROXY invalid Tansaction XML: ".xml_error_string($code) .  " in line " . $line. " at character ". $col);
-		die();
-	}
-	xml_parser_free($parser);
-	
-	$insert = false;
-	$insertlevel = 0;
-	foreach ($values as $element) {
-		//features touched by insert
-		if(strtoupper($element[tag]) == "WFS:INSERT" && $element[type] == "open"){
-			$insert = true;
-			$insertlevel = $element[level];
-		}
-		if($insert && $element[level] == $insertlevel + 1 && $element[type] == "open"){
-			array_push($features, $element[tag]);
-		}
-		if(strtoupper($element[tag]) == "WFS:INSERT" && $element[type] == "close"){
-			$insert = false;
-		}
-		//updated features
-		if(strtoupper($element[tag]) == "WFS:UPDATE" && $element[type] == "open"){
-			array_push($features, $element[attributes]["typeName"]);
-		}
-		//deleted features
-		if(strtoupper($element[tag]) == "WFS:DELETE" && $element[type] == "open"){
-			array_push($features, $element[attributes]["typeName"]);
-		}
-	}
-	return $features;
-}
-
-/**
- * sends the data of WFS Transaction and echos the response
- * 
- *  @param string url to send the WFS Transaction to
- *  @param string WFS Transaction data
- */
-
-function doTransaction($url, $data){
-	$arURL = parse_url($url);
-	$host = $arURL["host"];
-	$port = $arURL["port"]; 
-	if($port == '') $port = 80;	
-
-	$path = $arURL["path"];
-	$method = "POST";
-	$result = sendToHost($host,$port,$method,html_entity_decode($path),$data);
-	
-	//delete header from result
-	$result = mb_eregi_replace("^[^<]*", "", $result);
-	$result = mb_eregi_replace("[^>]*$", "", $result);
-	
-	echo $result;
+        global $info_format;
+        //$e = new mb_notice("owsproxy: Try to fetch FeatureInfoRequest: ".$url);
+        header("Content-Type: ".$info_format);
+        $content = getDocumentContent($url);
+        $content = matchUrls($content);
+        echo $content;
 }
 
+/**
+ * fetchs and returns the content of WFS GetFeature response
+ *
+ * @param string the url of the GetFeature request
+ * @return echo the content of the GetFeature document
+ */
+function getFeature($url){
+        global $info_format;
+
+        header("Content-Type: ".$info_format);
+        $content = getDocumentContent($url);
+        $content = matchUrls($content);
+        echo $content;
+}
+
+/**
+ * simulates a post request to host
+ *
+ * @param string host to send the request to
+ * @param string port of host to send the request to
+ * @param string method to send data (should be "POST")
+ * @param string path on host
+ * @param string data to send to host
+ * @return string hosts response
+ */
+
+function sendToHost($host,$port,$method,$path,$data){
+        $buf = '';
+    if (empty($method)) $method = 'POST';
+    $method = mb_strtoupper($method);
+    $fp = fsockopen($host, $port);
+    fputs($fp, "$method $path HTTP/1.1\r\n");
+    fputs($fp, "Host: $host\r\n");
+    fputs($fp,"Content-type: application/xml\r\n");
+    fputs($fp, "Content-length: " . strlen($data) . "\r\n");
+    fputs($fp, "Connection: close\r\n\r\n");
+    if ($method == 'POST') fputs($fp, $data);
+    while (!feof($fp)) $buf .= fgets($fp,4096);
+    fclose($fp);
+    return $buf;
+}
+
+/**
+ * get wfs featurenames that are touched by a tansaction request defined in XML $data
+ *
+ * @param string XML that contains the tansaction request
+ * @return array array of touched feature names
+ */
+
+function getWfsFeaturesFromTransaction($data){
+        $features = array();
+        $values = NULL;
+        $tags = NULL;
+        $parser = xml_parser_create();
+        xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
+        xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
+        xml_parse_into_struct($parser,$data,$values,$tags);
+
+        $code = xml_get_error_code ($parser);
+        if ($code) {
+                $line = xml_get_current_line_number($parser);
+                $col = xml_get_current_column_number($parser);
+                $mb_exception = new mb_exception("OWSPROXY invalid Tansaction XML: ".xml_error_string($code) .  " in line " . $line. " at character ". $col);
+                die();
+        }
+        xml_parser_free($parser);
+
+        $insert = false;
+        $insertlevel = 0;
+        foreach ($values as $element) {
+                //features touched by insert
+                if(strtoupper($element[tag]) == "WFS:INSERT" && $element[type] == "open"){
+                        $insert = true;
+                        $insertlevel = $element[level];
+                }
+                if($insert && $element[level] == $insertlevel + 1 && $element[type] == "open"){
+                        array_push($features, $element[tag]);
+                }
+                if(strtoupper($element[tag]) == "WFS:INSERT" && $element[type] == "close"){
+                        $insert = false;
+                }
+                //updated features
+                if(strtoupper($element[tag]) == "WFS:UPDATE" && $element[type] == "open"){
+                        array_push($features, $element[attributes]["typeName"]);
+                }
+                //deleted features
+                if(strtoupper($element[tag]) == "WFS:DELETE" && $element[type] == "open"){
+                        array_push($features, $element[attributes]["typeName"]);
+                }
+        }
+        return $features;
+}
+
+/**
+ * sends the data of WFS Transaction and echos the response
+ *
+ *  @param string url to send the WFS Transaction to
+ *  @param string WFS Transaction data
+ */
+
+function doTransaction($url, $data){
+        $arURL = parse_url($url);
+        $host = $arURL["host"];
+        $port = $arURL["port"];
+        if($port == '') $port = 80;
+
+        $path = $arURL["path"];
+        $method = "POST";
+        $result = sendToHost($host,$port,$method,html_entity_decode($path),$data);
+
+        //delete header from result
+        $result = mb_eregi_replace("^[^<]*", "", $result);
+        $result = mb_eregi_replace("[^>]*$", "", $result);
+
+        echo $result;
+}
+
 function matchUrls($content){
-	if(!session_is_registered("owsproxyUrls")){
-		$_SESSION["owsproxyUrls"] = array();
-		$_SESSION["owsproxyUrls"]["id"] = array();
-		$_SESSION["owsproxyUrls"]["url"] = array();
-	}
-	$pattern = "/[\"|\'](https*:\/\/[^\"|^\']*)[\"|\']/";
-	preg_match_all($pattern,$content,$matches);
-	for($i=0; $i<count($matches[1]); $i++){
-		$req = $matches[1][$i];
-		$id = registerURL($req);
-		$extReq = setExternalRequest($id);
-		$content = str_replace($req,$extReq,$content);
-	}
-	return $content;
-}
+        if(!session_is_registered("owsproxyUrls")){
+                $_SESSION["owsproxyUrls"] = array();
+                $_SESSION["owsproxyUrls"]["id"] = array();
+                $_SESSION["owsproxyUrls"]["url"] = array();
+        }
+        $pattern = "/[\"|\'](https*:\/\/[^\"|^\']*)[\"|\']/";
+        preg_match_all($pattern,$content,$matches);
+        for($i=0; $i<count($matches[1]); $i++){
+                $req = $matches[1][$i];
+                $id = registerURL($req);
+                $extReq = setExternalRequest($id);
+                $content = str_replace($req,$extReq,$content);
+        }
+        return $content;
+}
 
 function setExternalRequest($id){
-	global $reqParams,$query;
-	$extReq = OWSPROXY ."/". $reqParams['sid'] ."/".$id."?request=external";
-	return $extReq;
+        global $reqParams,$query;
+        $extReq = OWSPROXY ."/". $reqParams['sid'] ."/".$id."?request=external";
+        return $extReq;
 }
 function getExternalRequest($id){
-	for($i=0; $i<count($_SESSION["owsproxyUrls"]["url"]); $i++){
-		if($id == $_SESSION["owsproxyUrls"]["id"][$i]){
-			$cUrl = $_SESSION["owsproxyUrls"]["url"][$i];
-			$query_string = removeOWSGetParams($_SERVER["QUERY_STRING"]);
-			if($query_string != ''){
-				$cUrl .= getConjunctionCharacter($cUrl).$query_string;
-			}	
-			$metainfo = get_headers($cUrl,1);
-			// just for the stupid InternetExplorer
-			header('Pragma: private');
-			header('Cache-control: private, must-revalidate');
-			
-			header("Content-Type: ".$metainfo['Content-Type']);
-			
-			$content = getDocumentContent($cUrl);
-			$content = matchUrls($content);			
-			echo $content; 
-		}	
-	} 
+        for($i=0; $i<count($_SESSION["owsproxyUrls"]["url"]); $i++){
+                if($id == $_SESSION["owsproxyUrls"]["id"][$i]){
+                        $cUrl = $_SESSION["owsproxyUrls"]["url"][$i];
+                        $query_string = removeOWSGetParams($_SERVER["QUERY_STRING"]);
+                        if($query_string != ''){
+                                $cUrl .= getConjunctionCharacter($cUrl).$query_string;
+                        }
+                        $metainfo = get_headers($cUrl,1);
+                        // just for the stupid InternetExplorer
+                        header('Pragma: private');
+                        header('Cache-control: private, must-revalidate');
+
+                        header("Content-Type: ".$metainfo['Content-Type']);
+
+                        $content = getDocumentContent($cUrl);
+                        $content = matchUrls($content);
+                        echo $content;
+                }
+        }
 }
 function removeOWSGetParams($query_string){
-	$r = preg_replace("/.*request=external&/","",$query_string);
-	return $r;
+        $r = preg_replace("/.*request=external&/","",$query_string);
+        return $r;
 }
 function getConjunctionCharacter($url){
-	if(strpos($url,"?")){ 
-		if(strpos($url,"?") == strlen($url)){ 
-			$cchar = "";
-		}else if(strpos($url,"&") == strlen($url)){
-			$cchar = "";
-		}else{
-			$cchar = "&";
-		}
-	}
-	if(strpos($url,"?") === false){
-		$cchar = "?";
-	} 
-	return $cchar;  
+        if(strpos($url,"?")){
+                if(strpos($url,"?") == strlen($url)){
+                        $cchar = "";
+                }else if(strpos($url,"&") == strlen($url)){
+                        $cchar = "";
+                }else{
+                        $cchar = "&";
+                }
+        }
+        if(strpos($url,"?") === false){
+                $cchar = "?";
+        }
+        return $cchar;
 }
-function registerUrl($url){	
-	if(!in_array($url,$_SESSION["owsproxyUrls"]["url"])){
-		$id = md5($url);
-		array_push($_SESSION["owsproxyUrls"]["url"],$url);
-		array_push($_SESSION["owsproxyUrls"]["id"], $id);
-	}
-	else{
-		for($i=0; $i<count($_SESSION["owsproxyUrls"]["url"]); $i++){
-			if($url == $_SESSION["owsproxyUrls"]["url"][$i]){
-				$id = $_SESSION["owsproxyUrls"]["id"][$i];
-			}			
-		}
-	}
-	return $id;
+function registerUrl($url){
+        if(!in_array($url,$_SESSION["owsproxyUrls"]["url"])){
+                $id = md5($url);
+                array_push($_SESSION["owsproxyUrls"]["url"],$url);
+                array_push($_SESSION["owsproxyUrls"]["id"], $id);
+        }
+        else{
+                for($i=0; $i<count($_SESSION["owsproxyUrls"]["url"]); $i++){
+                        if($url == $_SESSION["owsproxyUrls"]["url"][$i]){
+                                $id = $_SESSION["owsproxyUrls"]["id"][$i];
+                        }
+                }
+        }
+        return $id;
 }
 function getCapabilities($url){
-	global $arrayOnlineresources;
-	global $sid,$wms;
-	$t = array(htmlentities($arrayOnlineresources["wms_getcapabilities"]),htmlentities($arrayOnlineresources["wms_getmap"]),htmlentities($arrayOnlineresources["$wms_getfeatureinfo"]));
-	$new = OWSPROXY ."/". $sid ."/".$wms."?";
-	$r = str_replace($t,$new,$arrayOnlineresources["wms_getcapabilities_doc"]);
-	header("Content-Type: application/xml");
-	echo $r;
-}
-
-/**
- * gets the original url of the requested legend graphic
- * 
- * @param string owsproxy md5
- * @return string url to legend graphic
- */
-function getLegendUrl($wms){
-	global $reqParams;
-	
-	//get wms id
-	$sql = "SELECT * FROM wms WHERE wms_owsproxy = $1";
-	$v = array($wms);
-	$t = array("s");
-	$res = db_prep_query($sql, $v, $t);	
-	if($row = db_fetch_array($res))
-		$wmsid = $row["wms_id"];
-	else{
-		throwE(array("No wms data available."));
-		die();	
-	}
-	
-	//get the url
-	$sql = "SELECT layer_style.legendurl ";
-	$sql .= "FROM layer_style JOIN layer ";
-	$sql .= "ON layer_style.fkey_layer_id = layer.layer_id ";
-	$sql .= "WHERE layer.layer_name = $2 AND layer.fkey_wms_id = $1 ";
-	$sql .= "AND layer_style.name = $3 AND layer_style.legendurlformat = $4";
-	
-	$v = array($wmsid, $reqParams['layer'], $reqParams['style'], $reqParams['format']);
-	$t = array("i", "s", "s", "s");
-	
-	$res = db_prep_query($sql, $v, $t);
-	if($row = db_fetch_array($res))
-		return $row["legendurl"];
-	else{
-		throwE(array("No legend available."));
-		die();
-	}
-}
-/**
- * validated access permission on requested wms
- * 
- * @param string OWSPROXY md5
- * @return array array with detailed information about requested wms
+        global $arrayOnlineresources;
+        global $sid,$wms;
+        $t = array(htmlentities($arrayOnlineresources["wms_getcapabilities"]),htmlentities($arrayOnlineresources["wms_getmap"]),htmlentities($arrayOnlineresources["$wms_getfeatureinfo"]));
+        $new = OWSPROXY ."/". $sid ."/".$wms."?";
+        $r = str_replace($t,$new,$arrayOnlineresources["wms_getcapabilities_doc"]);
+        header("Content-Type: application/xml");
+        echo $r;
+}
+
+/**
+ * gets the original url of the requested legend graphic
+ *
+ * @param string owsproxy md5
+ * @return string url to legend graphic
  */
+function getLegendUrl($wms){
+        global $reqParams;
+
+        //get wms id
+        $sql = "SELECT * FROM wms WHERE wms_owsproxy = $1";
+        $v = array($wms);
+        $t = array("s");
+        $res = db_prep_query($sql, $v, $t);
+        if($row = db_fetch_array($res))
+                $wmsid = $row["wms_id"];
+        else{
+                throwE(array("No wms data available."));
+                die();
+        }
+
+        //get the url
+        $sql = "SELECT layer_style.legendurl ";
+        $sql .= "FROM layer_style JOIN layer ";
+        $sql .= "ON layer_style.fkey_layer_id = layer.layer_id ";
+        $sql .= "WHERE layer.layer_name = $2 AND layer.fkey_wms_id = $1 ";
+        $sql .= "AND layer_style.name = $3 AND layer_style.legendurlformat = $4";
+
+        $v = array($wmsid, $reqParams['layer'], $reqParams['style'], $reqParams['format']);
+        $t = array("i", "s", "s", "s");
+
+        $res = db_prep_query($sql, $v, $t);
+        if($row = db_fetch_array($res))
+                return $row["legendurl"];
+        else{
+                throwE(array("No legend available."));
+                die();
+        }
+}
+/**
+ * validated access permission on requested wms
+ *
+ * @param string OWSPROXY md5
+ * @return array array with detailed information about requested wms
+ */
 function checkWmsPermission($wms){
-	global $con, $n;
-	$myguis = $n->getGuisByPermission($_SESSION["mb_user_id"],true);
-	$mywms = $n->getWmsByOwnGuis($myguis);
+        global $con, $n;
+        $myguis = $n->getGuisByPermission($_SESSION["mb_user_id"],true);
+        $mywms = $n->getWmsByOwnGuis($myguis);
 
-	$sql = "SELECT * FROM wms WHERE wms_owsproxy = $1";
-	$v = array($wms);
-	$t = array("s");
-	$res = db_prep_query($sql, $v, $t);
-	$service = array();
-	if($row = db_fetch_array($res)){
-		$service["wms_id"] = $row["wms_id"];
-		$service["wms_getcapabilities"] = $row["wms_getcapabilities"];	
-		$service["wms_getmap"] = $row["wms_getmap"];
-		$service["wms_getfeatureinfo"] = $row["wms_getfeatureinfo"];
-		$service["wms_getcapabilities_doc"] = $row["wms_getcapabilities_doc"];
-	}
-	if(!$row || count($mywms) == 0){
-		throwE(array("No wms data available."));
-		die();	
-	}
-	
-	if(!in_array($service["wms_id"], $mywms)){
-		throwE(array("Permission denied."," -> ".$service["wms_id"], implode(",", $mywms)));
-		die();
-	}
-	return $service;
-}
-/**
- * validates the access permission by getting the appropriate wfs_conf
- * to each feature requested and check the wfs_conf permission
- * 
- * @param string owsproxy md5
- * @param array array of requested featuretype names
- * @return array array with detailed information on reqested wfs
- */
-function checkWfsPermission($wfsOws, $features){
-	global $con, $n;
-	$myconfs = $n->getWfsConfByPermission($_SESSION["mb_user_id"]);
-	
-	//check if we know the features requested
-	if(count($features) == 0){
-		throwE(array("No wfs_feature data available."));
-		die();
-	}
-	
-	//get wfs
-	$sql = "SELECT * FROM wfs WHERE wfs_owsproxy = $1";
-	$v = array($wfsOws);
-	$t = array("s");
-	$res = db_prep_query($sql, $v, $t);
-	$service = array();
-	if($row = db_fetch_array($res)){
-		$service["wfs_id"] = $row["wfs_id"];
-		$service["wfs_getcapabilities"] = $row["wfs_getcapabilities"];	
-		$service["wfs_getfeature"] = $row["wfs_getfeature"];
-		$service["wfs_describefeaturetype"] = $row["wfs_describefeaturetype"];
-		$service["wfs_transaction"] = $row["wfs_transaction"];
-		$service["wfs_getcapabilities_doc"] = $row["wfs_getcapabilities_doc"];
-	}
-	else{
-		throwE(array("No wfs data available."));
-		die();	
-	}
-	
-	foreach($features as $feature){
-	
-		//get appropriate wfs_conf
-		$sql = "SELECT wfs_conf.wfs_conf_id FROM wfs_conf ";
-		$sql.= "JOIN wfs_featuretype ";
-		$sql.= "ON wfs_featuretype.featuretype_id = wfs_conf.fkey_featuretype_id ";
-		$sql.= "WHERE wfs_featuretype.featuretype_name = $2 ";
-		$sql.= "AND wfs_featuretype.fkey_wfs_id = $1";
-		$v = array($service["wfs_id"], $feature);
-		$t = array("i","s");
-		$res = db_prep_query($sql, $v, $t);
-		if(!($row = db_fetch_array($res))){
-			$notice = new mb_notice("Permissioncheck failed no wfs conf for wfs ".$service["wfs_id"]." with feturetype ".$feature);
-			throwE(array("No wfs_conf data for featuretype ".$feature));
-			die();	
-		}
-		$conf_id = $row["wfs_conf_id"];
-		
-		//check permission
-		if(!in_array($conf_id, $myconfs)){
-			$notice = new mb_notice("Permissioncheck failed:".$conf_id." not in ".implode(",", $myconfs));
-			throwE(array("Permission denied."," -> ".$conf_id, implode(",", $myconfs)));
-			die();
-		}
-	}
-
-	return $service;
-}
+        $sql = "SELECT * FROM wms WHERE wms_owsproxy = $1";
+        $v = array($wms);
+        $t = array("s");
+        $res = db_prep_query($sql, $v, $t);
+        $service = array();
+        if($row = db_fetch_array($res)){
+                $service["wms_id"] = $row["wms_id"];
+                $service["wms_getcapabilities"] = $row["wms_getcapabilities"];
+                $service["wms_getmap"] = $row["wms_getmap"];
+                $service["wms_getfeatureinfo"] = $row["wms_getfeatureinfo"];
+                $service["wms_getcapabilities_doc"] = $row["wms_getcapabilities_doc"];
+        }
+        if(!$row || count($mywms) == 0){
+                throwE(array("No wms data available."));
+                die();
+        }
 
+        if(!in_array($service["wms_id"], $mywms)){
+                throwE(array("Permission denied."," -> ".$service["wms_id"], implode(",", $mywms)));
+                die();
+        }
+        return $service;
+}
+/**
+ * validates the access permission by getting the appropriate wfs_conf
+ * to each feature requested and check the wfs_conf permission
+ *
+ * @param string owsproxy md5
+ * @param array array of requested featuretype names
+ * @return array array with detailed information on reqested wfs
+ */
+function checkWfsPermission($wfsOws, $features){
+        global $con, $n;
+        $myconfs = $n->getWfsConfByPermission($_SESSION["mb_user_id"]);
+
+        //check if we know the features requested
+        if(count($features) == 0){
+                throwE(array("No wfs_feature data available."));
+                die();
+        }
+
+        //get wfs
+        $sql = "SELECT * FROM wfs WHERE wfs_owsproxy = $1";
+        $v = array($wfsOws);
+        $t = array("s");
+        $res = db_prep_query($sql, $v, $t);
+        $service = array();
+        if($row = db_fetch_array($res)){
+                $service["wfs_id"] = $row["wfs_id"];
+                $service["wfs_getcapabilities"] = $row["wfs_getcapabilities"];
+                $service["wfs_getfeature"] = $row["wfs_getfeature"];
+                $service["wfs_describefeaturetype"] = $row["wfs_describefeaturetype"];
+                $service["wfs_transaction"] = $row["wfs_transaction"];
+                $service["wfs_getcapabilities_doc"] = $row["wfs_getcapabilities_doc"];
+        }
+        else{
+                throwE(array("No wfs data available."));
+                die();
+        }
+
+        foreach($features as $feature){
+
+                //get appropriate wfs_conf
+                $sql = "SELECT wfs_conf.wfs_conf_id FROM wfs_conf ";
+                $sql.= "JOIN wfs_featuretype ";
+                $sql.= "ON wfs_featuretype.featuretype_id = wfs_conf.fkey_featuretype_id ";
+                $sql.= "WHERE wfs_featuretype.featuretype_name = $2 ";
+                $sql.= "AND wfs_featuretype.fkey_wfs_id = $1";
+                $v = array($service["wfs_id"], $feature);
+                $t = array("i","s");
+                $res = db_prep_query($sql, $v, $t);
+                if(!($row = db_fetch_array($res))){
+                        $notice = new mb_notice("Permissioncheck failed no wfs conf for wfs ".$service["wfs_id"]." with feturetype ".$feature);
+                        throwE(array("No wfs_conf data for featuretype ".$feature));
+                        die();
+                }
+                $conf_id = $row["wfs_conf_id"];
+
+                //check permission
+                if(!in_array($conf_id, $myconfs)){
+                        $notice = new mb_notice("Permissioncheck failed:".$conf_id." not in ".implode(",", $myconfs));
+                        throwE(array("Permission denied."," -> ".$conf_id, implode(",", $myconfs)));
+                        die();
+                }
+        }
+
+        return $service;
+}
+
 function checkLayerPermission($wms_id,$l){
-	global $n, $owsproxyService;
-//	$notice = new mb_notice("owsproxy: checkLayerpermission: wms: ".$wms_id.", layer: ".$l);
-	$myl = split(",",$l);
-	$r = array();
-	foreach($myl as $mysl){
-		if($n->getLayerPermission($wms_id, $mysl, $_SESSION["mb_user_id"]) === true){
-			array_push($r, $mysl);
-		}		
-	}
-	$ret = implode(",",$r);
-	return $ret;
+        global $n, $owsproxyService;
+//        $notice = new mb_notice("owsproxy: checkLayerpermission: wms: ".$wms_id.", layer: ".$l);
+        $myl = split(",",$l);
+        $r = array();
+        foreach($myl as $mysl){
+                if($n->getLayerPermission($wms_id, $mysl, $_SESSION["mb_user_id"]) === true){
+                        array_push($r, $mysl);
+                }
+        }
+        $ret = implode(",",$r);
+        return $ret;
 }
 function getDocumentContent($url){
-	$d = new connector($url);
-	return $d->file;
+        $d = new connector($url);
+        return $d->file;
 }
 ?>
\ No newline at end of file



More information about the Mapbender_commits mailing list