From 5c8fdff9dece41b1b3bc994daa317542fc49722c Mon Sep 17 00:00:00 2001
From: Edmar Moretti
Date: Tue, 17 Oct 2017 09:36:00 -0200
Subject: [PATCH] Remoção da opção de edição de conexões do sistema de administração em prol de variável definida em ms_configura.php
---
admin/admin.db | Bin 352256 -> 0 bytes
admin1/dicionario/principal.js | 5 +++++
admin1/index.php | 1 +
admin1/menu.js | 6 +++---
admin1/metaestat/regioes/funcoes.php | 5 +++--
admin1/metaestat/variaveis/medidas/funcoes.php | 5 +++--
admin1/php/bdexplorer.php | 11 ++++++++---
admin1/php/funcoesAdmin.php | 32 ++++++++++++++++++++++++++++++++
classesphp/classe_metaestatinfo.php | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
classesphp/metaestat_controle.php | 3 ++-
ferramentas/saiku/cartograma.php | 3 ++-
ms_configura.php | 6 +++++-
12 files changed, 118 insertions(+), 24 deletions(-)
diff --git a/admin/admin.db b/admin/admin.db
index f4edb06..6f39129 100755
Binary files a/admin/admin.db and b/admin/admin.db differ
diff --git a/admin1/dicionario/principal.js b/admin1/dicionario/principal.js
index a9a4486..f69df3e 100755
--- a/admin1/dicionario/principal.js
+++ b/admin1/dicionario/principal.js
@@ -80,6 +80,11 @@ i3GEOadmin.principal.dicionario = {
en : "",
es : ""
} ],
+ 'leiaMe1' : [ {
+ pt : "Na versão 7 do i3Geo, a opção de cadastro de conexões com o banco de dados foi removida. A string de conexão deve ser definida no arquivo i3geo/ms_configura.php por meio da variável $postgis_mapa (veja detalhes nesse mesmo arquivo).",
+ en : "",
+ es : ""
+ } ],
'erroLogin' : [ {
pt : "É necessário fazer login",
en : "",
diff --git a/admin1/index.php b/admin1/index.php
index 57f0873..f50f1de 100755
--- a/admin1/index.php
+++ b/admin1/index.php
@@ -94,6 +94,7 @@ include "head.php";
{{{leiaMe}}}
+ {{{leiaMe1}}}
diff --git a/admin1/menu.js b/admin1/menu.js
index 0755eb0..a33c188 100755
--- a/admin1/menu.js
+++ b/admin1/menu.js
@@ -46,9 +46,9 @@ menuPrincipal = [
html: ""+$trad("cadastroVariav",i3GEOadmin.menup.dicionario)+""
},{
html: ""+$trad("cadastroMedidas",i3GEOadmin.menup.dicionario)+""
- },{
- html: ""+$trad("cadastroPeriodos",i3GEOadmin.menup.dicionario)+""
- },{
+ }
+ //,{html: ""+$trad("cadastroPeriodos",i3GEOadmin.menup.dicionario)+""}
+ ,{
html: ""+$trad("cadastroConexoes",i3GEOadmin.menup.dicionario)+""
},{
html: ""+$trad("cadastroTabelas",i3GEOadmin.menup.dicionario)+""
diff --git a/admin1/metaestat/regioes/funcoes.php b/admin1/metaestat/regioes/funcoes.php
index e35a6c3..6412e02 100755
--- a/admin1/metaestat/regioes/funcoes.php
+++ b/admin1/metaestat/regioes/funcoes.php
@@ -92,8 +92,9 @@ function colunasRegiao($dbh,$codigo_tipo_regiao){
//parametros da regiao
$regiao = \admin\metaestat\regioes\listar($dbh, $codigo_tipo_regiao);
//parametros de conexao
- $c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $regiao["codigo_estat_conexao"], $dbh, false );
- $c = $c[0];
+ //$c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $regiao["codigo_estat_conexao"], $dbh, false );
+ //$c = $c[0];
+ $c = \admin\php\funcoesAdmin\listaConexaoMetaestat();
$dbhBD = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$sql = "SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '" . $regiao["tabela"] . "' and p.nspname = '" . $regiao["esquemadb"] . "' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname";
diff --git a/admin1/metaestat/variaveis/medidas/funcoes.php b/admin1/metaestat/variaveis/medidas/funcoes.php
index 6562864..196d4c1 100755
--- a/admin1/metaestat/variaveis/medidas/funcoes.php
+++ b/admin1/metaestat/variaveis/medidas/funcoes.php
@@ -82,8 +82,9 @@ function colunasMedida($dbh,$id_medida_variavel){
//parametros da regiao
$medida = \admin\metaestat\variaveis\medidas\listar($dbh, "", $id_medida_variavel);
//parametros de conexao
- $c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $medida["codigo_estat_conexao"], $dbh, false );
- $c = $c[0];
+ //$c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $medida["codigo_estat_conexao"], $dbh, false );
+ //$c = $c[0];
+ $c = \admin\php\funcoesAdmin\listaConexaoMetaestat();
$dbhBD = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$sql = "SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '" . $medida["tabela"] . "' and p.nspname = '" . $medida["esquemadb"] . "' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname";
diff --git a/admin1/php/bdexplorer.php b/admin1/php/bdexplorer.php
index 7d026e3..d87b4ca 100755
--- a/admin1/php/bdexplorer.php
+++ b/admin1/php/bdexplorer.php
@@ -49,7 +49,8 @@ switch ($funcao) {
$parametros = $dbh;
} else {
$mt = new MetaestatInfo ();
- $parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false );
+ //$parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false );
+ $parametros = $mt->listaConexaoMetaestat();
}
$bd = new \i3geo\classesphp\bdexplorer\Bdexplorer ( $_SESSION ["locaplic"], $parametros );
$dados = $bd->listaDeTabelas ( $_POST ["esquema"] );
@@ -75,7 +76,8 @@ switch ($funcao) {
case "LISTARCOLUNAS" :
// pega os parametros de conexao
$mt = new MetaestatInfo ();
- $parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false );
+ //$parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false );
+ $parametros = $mt->listaConexaoMetaestat();
$bd = new \i3geo\classesphp\bdexplorer\Bdexplorer ( $_SESSION ["locaplic"], $parametros );
$dados = $bd->listaDeColunas ( $_POST ["esquema"], $_POST ["tabela"] );
if ($dados === false) {
@@ -86,8 +88,10 @@ switch ($funcao) {
break;
case "LISTARCODIGOSCONEXAO" :
// pega os parametros de conexao
+ \admin\php\funcoesAdmin\retornaJSON ( array() );
+ /*
$mt = new MetaestatInfo ();
- $dados = $mt->listaConexao ( "", false, false );
+ $dados = $mt->listaConexaoMetaestat();
if ($dados === false) {
header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
} else {
@@ -100,6 +104,7 @@ switch ($funcao) {
}
\admin\php\funcoesAdmin\retornaJSON ( $kv );
}
+ */
break;
default :
if (! empty ( $funcao ))
diff --git a/admin1/php/funcoesAdmin.php b/admin1/php/funcoesAdmin.php
index 38c6da5..07db844 100755
--- a/admin1/php/funcoesAdmin.php
+++ b/admin1/php/funcoesAdmin.php
@@ -3,6 +3,38 @@ namespace admin\php\funcoesAdmin;
use PDO;
use PDOException;
use Services_JSON;
+
+function listaConexaoMetaestat(){
+ if(!isset($_SESSION["postgis_mapa"])){
+ include(dirname(__FILE__)."/../../ms_configura.php");
+ } else {
+ $postgis_mapa = $_SESSION["postgis_mapa"];
+ }
+ if(isset($postgis_mapa["metaestat"])){
+ $m = $postgis_mapa["metaestat"];
+ if($m == ""){
+ return false;
+ }
+ $lista = explode(" ",$m);
+ $con = array();
+ foreach($lista as $l){
+ $teste = explode("=",$l);
+ $con[trim($teste[0])] = trim($teste[1]);
+ }
+ $c = array(
+ "codigo_estat_conexao" => "metaestat",
+ "bancodedados" => $con["dbname"],
+ "host" => $con["host"],
+ "porta" => $con["port"],
+ "usuario" => $con["user"],
+ "senha" => $con["password"],
+ "fonte" => "ms_configura"
+ );
+ return $c;
+ } else {
+ return false;
+ }
+}
//
// verifica se um determinado papel esta registrado na variavel SESSION
//
diff --git a/classesphp/classe_metaestatinfo.php b/classesphp/classe_metaestatinfo.php
index 552fddd..4de1130 100755
--- a/classesphp/classe_metaestatinfo.php
+++ b/classesphp/classe_metaestatinfo.php
@@ -194,7 +194,8 @@ class MetaestatInfo{
function execSQLDB($codigo_estat_conexao,$sql){
$buscar = array("drop","update","insert","delete");
$sql = str_ireplace($buscar,"",$sql);
- $c = $this->listaConexao($codigo_estat_conexao,true);
+ //$c = $this->listaConexao($codigo_estat_conexao,true);
+ $c = $this->listaConexaoMetaestat();
$dbhold = $this->dbh;
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$this->dbh = $dbh;
@@ -513,7 +514,8 @@ class MetaestatInfo{
if($meta["codigo_tipo_regiao"] == $codigo_tipo_regiao || empty($codigo_tipo_regiao) ){
$agruparpor = "";
}
- $dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true);
+ //$dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true);
+ $dconexao = $this->listaConexaoMetaestat();
$conexao = "user=".$dconexao["usuario"]." password=".$dconexao["senha"]." dbname=".$dconexao["bancodedados"]." host=".$dconexao["host"]." port=".$dconexao["porta"]."";
$sql = $this->sqlMedidaVariavel(
$id_medida_variavel,
@@ -642,7 +644,8 @@ class MetaestatInfo{
$dados[] = ' NAME "'.$this->nomecache.'"';
$dados[] = " TYPE $tipolayer";
$dados[] = ' DATA "'.$sqlf.'"';
- $dados[] = ' CONNECTION "'.$conexao.'"';
+ //$dados[] = ' CONNECTION "'.$conexao.'"';
+ $dados[] = ' CONNECTION "metaestat"';
$dados[] = ' CONNECTIONTYPE POSTGIS';
$dados[] = ' STATUS OFF';
$dados[] = ' TEMPLATE "none.htm"';
@@ -777,7 +780,8 @@ class MetaestatInfo{
$meta = $this->listaTipoRegiao($codigo_tipo_regiao);
$titulolayer = $meta["nome_tipo_regiao"];
$titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer));
- $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true);
+ //$conexao = $this->listaConexao($meta["codigo_estat_conexao"],true);
+ $conexao = $this->listaConexaoMetaestat();
$conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"]."";
$colunageo = $meta["colunageo"];
$srid = $meta["srid"];
@@ -1000,7 +1004,8 @@ class MetaestatInfo{
//echo $sqlf;exit;
$metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
if(!empty($metaVariavel["codigo_estat_conexao"])){
- $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbhold = $this->dbh;
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$this->dbh = $dbh;
@@ -1021,7 +1026,8 @@ class MetaestatInfo{
$sqlf = $sqlf["sqlagrupamento"];
$metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
if(!empty($metaVariavel["codigo_estat_conexao"])){
- $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbhold = $this->dbh;
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$this->dbh = $dbh;
@@ -1317,6 +1323,38 @@ class MetaestatInfo{
}
return $regioes;
}
+ function listaConexaoMetaestat(){
+ if(!isset($_SESSION["postgis_mapa"])){
+ include(dirname(__FILE__)."/../ms_configura.php");
+ } else {
+ $postgis_mapa = $_SESSION["postgis_mapa"];
+ }
+ if(isset($postgis_mapa["metaestat"])){
+ $m = $postgis_mapa["metaestat"];
+ if($m == ""){
+ return false;
+ }
+ $lista = explode(" ",$m);
+ $con = array();
+ foreach($lista as $l){
+ $teste = explode("=",$l);
+ $con[trim($teste[0])] = trim($teste[1]);
+ }
+ $c = array(
+ "codigo_estat_conexao" => "metaestat",
+ "bancodedados" => $con["dbname"],
+ "host" => $con["host"],
+ "porta" => $con["port"],
+ "usuario" => $con["user"],
+ "senha" => $con["password"],
+ "options" => $con["options"],
+ "fonte" => "ms_configura"
+ );
+ return $c;
+ } else {
+ return false;
+ }
+ }
/**
* Lista os dados de uma conexao ou de todas
* @param id da conexao
@@ -1494,7 +1532,8 @@ class MetaestatInfo{
function listaPropGeoRegiao($codigo_tipo_regiao){
//st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON
$regiao = $this->listaTipoRegiao($codigo_tipo_regiao);
- $c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$c = $regiao["colunageo"];
$sql = "select st_dimension(".$regiao["colunageo"].") as st_dimension from ".$regiao["esquemadb"].".".$regiao["tabela"]." limit 1";
@@ -1578,7 +1617,8 @@ class MetaestatInfo{
function listaDadosRegiao($codigo_tipo_regiao,$codigo_tipo_regiaopai="",$valorregiaopai=""){
//pega a tabela, esquema e conexao para acessar os dados da regiao
$regiao = $this->listaTipoRegiao($codigo_tipo_regiao);
- $c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$c = $regiao["colunageo"];
$bbox = "ST_XMin($c)||' '||ST_YMin($c)||' '||ST_XMax($c)||' '||ST_YMax($c) as ext ";
@@ -1603,7 +1643,8 @@ class MetaestatInfo{
function listaDadosGeometriaRegiao($codigo_tipo_regiao){
//pega a tabela, esquema e conexao para acessar os dados da regiao
$regiao = $this->listaTipoRegiao($codigo_tipo_regiao);
- $c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$c = $regiao["colunageo"];
$s = "ST_dimension($c) as dimension ";
@@ -1952,7 +1993,8 @@ class MetaestatInfo{
function xy2regiao($codigo_tipo_regiao,$x,$y){
//pega a tabela, esquema e conexao para acessar os dados da regiao
$regiao = $this->listaTipoRegiao($codigo_tipo_regiao);
- $c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
$dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
$sql = "select ".$regiao["identificador"]." as identificador_regiao,".$regiao["colunanomeregiao"]." as nomeregiao from i3geo_metaestat.".$regiao["tabela"]." WHERE ST_within(ST_GeomFromText('POINT($x $y)',".$regiao["srid"]."),".$regiao["colunageo"].")";
$q = $dbh->query($sql,PDO::FETCH_ASSOC);
@@ -1974,7 +2016,8 @@ class MetaestatInfo{
*/
function listaAtributosMedidaVariavelRegiao ($identificador_regiao,$id_medida_variavel){
$medida = $this->listaMedidaVariavel("",$id_medida_variavel);
- $c = $this->listaConexao($medida["codigo_estat_conexao"],true);
+ //$c = $this->listaConexao($medida["codigo_estat_conexao"],true);
+ $c = $this->listaConexaoMetaestat();
if($medida["colunavalor"] == ""){
return "";
}
diff --git a/classesphp/metaestat_controle.php b/classesphp/metaestat_controle.php
index 17b1db3..d0221cf 100755
--- a/classesphp/metaestat_controle.php
+++ b/classesphp/metaestat_controle.php
@@ -239,7 +239,8 @@ switch (strtoupper($funcao)) {
break;
case "LISTACONEXAO":
$m = new MetaestatInfo();
- retornaJSON($m->listaConexao($_pg["codigo_estat_conexao"]));
+ //retornaJSON($m->listaConexao($_pg["codigo_estat_conexao"]));
+ retornaJSON($m->listaConexaoMetaestat());
exit();
break;
case "ESQUEMASCONEXAO":
diff --git a/ferramentas/saiku/cartograma.php b/ferramentas/saiku/cartograma.php
index 1cbd09a..f40a216 100755
--- a/ferramentas/saiku/cartograma.php
+++ b/ferramentas/saiku/cartograma.php
@@ -62,7 +62,8 @@ else{
exit;
}
$titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer));
- $conexao = $m->listaConexao($meta["codigo_estat_conexao"],true);
+ //$conexao = $m->listaConexao($meta["codigo_estat_conexao"],true);
+ $conexao = $m->listaConexaoMetaestat();
$conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"]."";
$colunageo = $meta["colunageo"];
$sqlColunaGeo = $meta["colunageo"];
diff --git a/ms_configura.php b/ms_configura.php
index bbbdd74..39cb709 100755
--- a/ms_configura.php
+++ b/ms_configura.php
@@ -651,6 +651,10 @@ $postgis_mapa = array(
No exemplo, vc pode usar "teste" ou "conexao2" no seu mapfile veja em i3geo/temas/testesubstring.map
+A chave "metaestat" e utilizada pelo sistema de metadados estatisticos e indica o local onde as tabelas
+com os dados estatisticos estao armazenadas. Ate a versao 6.0, a definicao da conexao era feita por meio
+do banco de dados de administracao
+
Se vc não quiser usar essa substituição, deixe como está ou use
$postgis_mapa = ""
@@ -662,7 +666,7 @@ Tipo:
$postgis_mapa = array(
"teste"=>"user=postgres password=postgres dbname=teste host=localhost port=5432",
"postgres"=>"user=postgres password=postgres dbname=postgres host=localhost port=5432",
- "i3geosaude"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432 options='-c client_encoding=LATIN1'",
+ "metaestat"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432 options='-c client_encoding=LATIN1'",
"i3geosaudeUtf"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432"
);
/*
--
libgit2 0.21.2