svn commit: r772 - trunk/mapbender/http/classes/class_administration.php

uli at osgeo.org uli at osgeo.org
Tue Sep 26 10:29:37 EDT 2006


Author: uli
Date: 2006-09-26 14:29:37+0000
New Revision: 772

Modified:
   trunk/mapbender/http/classes/class_administration.php

Log:
new functions 
getWmsByWmsOwner
getLayerPermission


Modified: trunk/mapbender/http/classes/class_administration.php
Url: https://mapbender.osgeo.org/source/browse/mapbender/trunk/mapbender/http/classes/class_administration.php?view=diff&rev=772&p1=trunk/mapbender/http/classes/class_administration.php&p2=trunk/mapbender/http/classes/class_administration.php&r1=771&r2=772
==============================================================================
--- trunk/mapbender/http/classes/class_administration.php	(original)
+++ trunk/mapbender/http/classes/class_administration.php	2006-09-26 14:29:37+0000
@@ -16,8 +16,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-require_once("../../conf/mapbender.conf");
-$con = db_connect($DBSERVER,$OWNER,$PW);
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+$con = db_connect(DBSERVER,OWNER,PW);
 db_select_db(DB,$con);
 
 require("phpmailer-1.72/class.phpmailer.php"); 
@@ -304,6 +304,18 @@
 		$gui_list = $this->getGuisByOwner($user_id);
 		return $this->getWmsByOwnGuis($gui_list);
 	}
+	
+	function getWmsByWmsOwner($user_id){
+		$sql = "SELECT wms_id FROM wms WHERE wms_owner = $1";
+		$v = array($user_id);
+		$t = array('i');
+		$res = db_prep_query($sql,$v,$t);
+		$r = array();
+		while($row = db_fetch_array($res)){
+			array_push($r,$row["wms_id"]);
+		}
+		return $r;
+	}
  
 	function getUserByWms($wms_id){
 		$sql = "SELECT fkey_gui_id FROM gui_wms WHERE fkey_wms_id = $1 GROUP BY fkey_gui_id";
@@ -690,5 +702,43 @@
 			return false;	
 		}			
 	}
+	function getLayerPermission($wms_id, $layer_name, $user_id){
+		$layer_id = $this->getLayerIdByLayerName($wms_id,$layer_name);
+		$array_guis = $this->getGuisByPermission($user_id);
+		$v = array();
+		$t = array();
+		$sql = "SELECT * FROM gui_layer WHERE fkey_gui_id IN (";
+		$c = 1;
+		for($i=0; $i<count($array_guis); $i++){
+			if($i>0){ $sql .= ",";}
+			$sql .= "$".$c;
+			$c++;
+			array_push($v, $array_guis[$i]);
+			array_push($t, 's');			
+		}
+		$sql .= ") AND fkey_layer_id = $".$c." AND gui_layer_status = 1";
+		array_push($v,$layer_id);
+		array_push($t,'i');
+		$res = db_prep_query($sql,$v,$t);
+		if($row = db_fetch_array($res)){
+			return true;
+		}
+		else{
+			return false;
+		}
+	}
+	function getLayerIdByLayerName($wms_id, $layer_name){
+		$sql = "SELECT layer_id FROM layer WHERE ";
+		$sql .= "fkey_wms_id = $1 AND layer_name = $2";
+		$v = array($wms_id,$layer_name);
+		$t = array('i','s');
+		$res = db_prep_query($sql,$v,$t);
+		if($row = db_fetch_array($res)){
+			return $row['layer_id'];
+		}
+		else{
+			return false;	
+		}
+	}
 }
 ?>
\ No newline at end of file




More information about the Mapbender_commits mailing list