Commit 62e6020e5458774802c5316353e15fecc7f732e3
1 parent
bfbca652
Exists in
master
and in
7 other branches
Inclusão de validação de temas restritos no parsemapfile.php
Showing
5 changed files
with
113 additions
and
70 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/php/parsemapfile.php
@@ -7,6 +7,10 @@ Converte um mapfile em um arquivo XML | @@ -7,6 +7,10 @@ Converte um mapfile em um arquivo XML | ||
7 | O padrão XML utilizado é compatível com a estrutura de um projeto do softwrae GVSIG ate a versão 1.1 | 7 | O padrão XML utilizado é compatível com a estrutura de um projeto do softwrae GVSIG ate a versão 1.1 |
8 | Esse XML é utilizado pelo plugin do i3Geo para GVSIG, que permite visualizar a árvore de temas do i3Geo dentro do GVSIG. | 8 | Esse XML é utilizado pelo plugin do i3Geo para GVSIG, que permite visualizar a árvore de temas do i3Geo dentro do GVSIG. |
9 | 9 | ||
10 | +No caso de layers que fazem acesso a banco de dados, a string de conexao e bloqueada por default | ||
11 | + | ||
12 | +Para desbloquear e necessario editar a variavel de configuracao existente nesse mesmo arquivo | ||
13 | + | ||
10 | Licenca: | 14 | Licenca: |
11 | 15 | ||
12 | GPL2 | 16 | GPL2 |
@@ -33,14 +37,17 @@ Arquivo: | @@ -33,14 +37,17 @@ Arquivo: | ||
33 | 37 | ||
34 | i3geo/admin/php/parsemapfile.php | 38 | i3geo/admin/php/parsemapfile.php |
35 | */ | 39 | */ |
36 | -//TODO permitir acesso apenas com login e senha | ||
37 | -//TODO verificar restricao de acesso ao tema | ||
38 | - | ||
39 | -//return; | ||
40 | include("../../ms_configura.php"); | 40 | include("../../ms_configura.php"); |
41 | include_once("../../classesphp/funcoes_gerais.php"); | 41 | include_once("../../classesphp/funcoes_gerais.php"); |
42 | include_once("../../classesphp/carrega_ext.php"); | 42 | include_once("../../classesphp/carrega_ext.php"); |
43 | include_once("../../classesphp/pega_variaveis.php"); | 43 | include_once("../../classesphp/pega_variaveis.php"); |
44 | +// | ||
45 | +//essa variavel indica se a senha do banco e bloqueada ou nao caso | ||
46 | +//o tema seja do tipo postgis | ||
47 | +//por default e feito o bloqueio | ||
48 | +// | ||
49 | +$bloqueiaStringConexao = true; | ||
50 | +// | ||
44 | error_reporting(0); | 51 | error_reporting(0); |
45 | if(!isset($forcawms)){$forcawms = "nao";} | 52 | if(!isset($forcawms)){$forcawms = "nao";} |
46 | $objcontype[0] = "MS_INLINE"; | 53 | $objcontype[0] = "MS_INLINE"; |
@@ -70,6 +77,13 @@ $objlayertypes[8] = "MS_LAYER_CHART"; | @@ -70,6 +77,13 @@ $objlayertypes[8] = "MS_LAYER_CHART"; | ||
70 | 77 | ||
71 | $codigoLayer = $id; | 78 | $codigoLayer = $id; |
72 | $mapfile = $locaplic."/temas/".$codigoLayer.".map"; | 79 | $mapfile = $locaplic."/temas/".$codigoLayer.".map"; |
80 | +//remove temas restritos pelo sistema de controle de usuarios | ||
81 | +$indevidos = validaAcessoTemas($mapfile,false); | ||
82 | +if($indevidos == true){ | ||
83 | + echo "Encontrados layers restritos"; | ||
84 | + exit; | ||
85 | +} | ||
86 | +// | ||
73 | $mapa = ms_newMapObj($mapfile); | 87 | $mapa = ms_newMapObj($mapfile); |
74 | if(!isset($tipoparse) || $tipoparse=="") | 88 | if(!isset($tipoparse) || $tipoparse=="") |
75 | {mapfile();exit;} | 89 | {mapfile();exit;} |
@@ -267,7 +281,7 @@ function legendaSimples($layername) | @@ -267,7 +281,7 @@ function legendaSimples($layername) | ||
267 | // | 281 | // |
268 | function mapfile() | 282 | function mapfile() |
269 | { | 283 | { |
270 | - global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes,$forcawms,$postgis_mapa; | 284 | + global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes,$forcawms,$postgis_mapa,$bloqueiaStringConexao; |
271 | $layers = $mapa->getalllayernames(); | 285 | $layers = $mapa->getalllayernames(); |
272 | $dados = array(); | 286 | $dados = array(); |
273 | $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; | 287 | $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; |
@@ -355,11 +369,20 @@ function mapfile() | @@ -355,11 +369,20 @@ function mapfile() | ||
355 | else | 369 | else |
356 | {$con = $postgis_mapa[$con];} | 370 | {$con = $postgis_mapa[$con];} |
357 | } | 371 | } |
358 | - $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; | ||
359 | - $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; | ||
360 | - $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; | ||
361 | - $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; | ||
362 | - $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; | 372 | + if($bloqueiaStringConexao == true){ |
373 | + $xml .= "<user>bloqueado (veja i3geo/admin/php/parsemapfile)</user>\n"; | ||
374 | + $xml .= "<password></password>\n"; | ||
375 | + $xml .= "<dbname></dbname>\n"; | ||
376 | + $xml .= "<host></host>\n"; | ||
377 | + $xml .= "<port></port>\n"; | ||
378 | + } | ||
379 | + else{ | ||
380 | + $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; | ||
381 | + $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; | ||
382 | + $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; | ||
383 | + $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; | ||
384 | + $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; | ||
385 | + } | ||
363 | $xml .= "</connection>\n"; | 386 | $xml .= "</connection>\n"; |
364 | $d = explode("(",$d); | 387 | $d = explode("(",$d); |
365 | $d = explode(")",$d[1]); | 388 | $d = explode(")",$d[1]); |
@@ -448,5 +471,4 @@ function pegaEstilos($xml,$classe) | @@ -448,5 +471,4 @@ function pegaEstilos($xml,$classe) | ||
448 | } | 471 | } |
449 | return $xml; | 472 | return $xml; |
450 | } | 473 | } |
451 | - | ||
452 | ?> | 474 | ?> |
453 | \ No newline at end of file | 475 | \ No newline at end of file |
classesphp/funcoes_gerais.php
@@ -2451,18 +2451,33 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ | @@ -2451,18 +2451,33 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ | ||
2451 | Function: validaAcessoTemas | 2451 | Function: validaAcessoTemas |
2452 | 2452 | ||
2453 | Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios | 2453 | Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios |
2454 | + | ||
2455 | +Remove os layers indevidos (considerando o usuario logado) de um mapfile com opção de salvar ou nao o arquivo apos a remocao | ||
2456 | + | ||
2457 | +Parametros: | ||
2458 | + | ||
2459 | +$map_file - nome do arquivo mapfile, podendo ser um dos que existem em i3geo/temas desde que com o nome completo | ||
2460 | + | ||
2461 | +$salva - salva o mapfile com os layers removidos ou nao | ||
2462 | + | ||
2463 | +Retorno: boolean indicando se o mapfile contem layers indevidos | ||
2454 | */ | 2464 | */ |
2455 | -function validaAcessoTemas($map_file){ | 2465 | +function validaAcessoTemas($map_file,$salva = true){ |
2456 | $indevidos = listaLayersIndevidos($map_file); | 2466 | $indevidos = listaLayersIndevidos($map_file); |
2467 | + $existeIndevidos = false; | ||
2457 | if(count($indevidos) > 0){ | 2468 | if(count($indevidos) > 0){ |
2469 | + $existeIndevidos = true; | ||
2458 | $m = ms_newMapObj($map_file); | 2470 | $m = ms_newMapObj($map_file); |
2459 | foreach($indevidos as $i){ | 2471 | foreach($indevidos as $i){ |
2460 | $l = $m->getlayerbyname($i); | 2472 | $l = $m->getlayerbyname($i); |
2461 | $l->set("status",MS_DELETE); | 2473 | $l->set("status",MS_DELETE); |
2462 | } | 2474 | } |
2463 | - $m->save($map_file); | 2475 | + //salva o mapfile |
2476 | + if($salva == true){ | ||
2477 | + $m->save($map_file); | ||
2478 | + } | ||
2464 | } | 2479 | } |
2465 | - return; | 2480 | + return $existeIndevidos; |
2466 | } | 2481 | } |
2467 | /* | 2482 | /* |
2468 | Function: listaTemasRestritos | 2483 | Function: listaTemasRestritos |
@@ -2500,6 +2515,10 @@ function listaLayersIndevidos($map_file){ | @@ -2500,6 +2515,10 @@ function listaLayersIndevidos($map_file){ | ||
2500 | for ($i=0;$i < $c;++$i) { | 2515 | for ($i=0;$i < $c;++$i) { |
2501 | $layer = $m->getlayer($i); | 2516 | $layer = $m->getlayer($i); |
2502 | $meta = $layer->getmetadata("arquivotemaoriginal"); | 2517 | $meta = $layer->getmetadata("arquivotemaoriginal"); |
2518 | + //pode ser que o metadata nao esteja definido ainda | ||
2519 | + if($meta == ""){ | ||
2520 | + $meta = str_replace(".map","",basename($map_file)); | ||
2521 | + } | ||
2503 | if($meta != ""){ | 2522 | if($meta != ""){ |
2504 | $t = $restritos[$meta]; | 2523 | $t = $restritos[$meta]; |
2505 | if($t && !in_array($t,$gruposusr)){ | 2524 | if($t && !in_array($t,$gruposusr)){ |
classesphp/mapa_controle.php
@@ -47,7 +47,7 @@ Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo | @@ -47,7 +47,7 @@ Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo | ||
47 | e/ou modificá-lo sob os termos da Licença Pública Geral | 47 | e/ou modificá-lo sob os termos da Licença Pública Geral |
48 | GNU conforme publicada pela Free Software Foundation; | 48 | GNU conforme publicada pela Free Software Foundation; |
49 | 49 | ||
50 | -Este programa é distribuído na expectativa //TODO MANTEMDADOSREGIAO | 50 | +Este programa é distribuído na expectativa |
51 | de que seja útil, | 51 | de que seja útil, |
52 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | 52 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
53 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | 53 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
@@ -112,8 +112,7 @@ include_once("pega_variaveis.php"); | @@ -112,8 +112,7 @@ include_once("pega_variaveis.php"); | ||
112 | $interfaceTemp = $interface; | 112 | $interfaceTemp = $interface; |
113 | // | 113 | // |
114 | //inicializa a sessão | 114 | //inicializa a sessão |
115 | -//TEMA2SLD é usado por datadownload.htm //TODO MANTEMDADOSREGIAO | ||
116 | - | 115 | +//TEMA2SLD é usado por datadownload.htm |
117 | // | 116 | // |
118 | if ($funcao != "criaMapa" && $funcao != "TEMA2SLD"){ | 117 | if ($funcao != "criaMapa" && $funcao != "TEMA2SLD"){ |
119 | session_name("i3GeoPHP"); | 118 | session_name("i3GeoPHP"); |
temas/povoado.map
1 | -MAP | ||
2 | - | ||
3 | - | ||
4 | - FONTSET "../symbols/fontes.txt" | ||
5 | - SYMBOLSET "../symbols/simbolos.sym" | ||
6 | - LAYER | ||
7 | - CONNECTION "" | ||
8 | - DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\sc22\povoado.shp" | ||
9 | - METADATA | ||
10 | - "temporizador" "5" | ||
11 | - "cache" "" | ||
12 | - "ltempoitemimagem" "" | ||
13 | - "CLASSE" "SIM" | ||
14 | - "ltempoitemdescricao" "" | ||
15 | - "palletestep" "" | ||
16 | - "ltempoiteminicio" "" | ||
17 | - "permitekmz" "sim" | ||
18 | - "ltempoitemtip" "" | ||
19 | - "description_template" "" | ||
20 | - "ltempoitemtitulo" "" | ||
21 | - "iconetema" "" | ||
22 | - "ltempoitemlink" "" | ||
23 | - "palletefile" "" | ||
24 | - "permitedownload" "sim" | ||
25 | - "ltempoformatodata" "" | ||
26 | - "ltempoitemicone" "" | ||
27 | - "permitecomentario" "NAO" | ||
28 | - "download" "SIM" | ||
29 | - "arquivodownload" "" | ||
30 | - "arquivokmz" "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\povoado.kmz" | ||
31 | - "permitekml" "sim" | ||
32 | - "permiteogc" "" | ||
33 | - "TEMA" "Povoado" | ||
34 | - "editorsql" "" | ||
35 | - "ltempoitemfim" "" | ||
36 | - "legendaimg" "http://www.rockingsmileys.com/wp-content/uploads/2011/03/Happy_eyebrowes_smileys-150x150.png" | ||
37 | - END | ||
38 | - NAME "povoado" | ||
39 | - STATUS OFF | ||
40 | - TYPE POINT | ||
41 | - UNITS METERS | ||
42 | - CLASS | ||
43 | - NAME "" | ||
44 | - STYLE | ||
45 | - ANGLE 360 | ||
46 | - COLOR 0 0 0 | ||
47 | - SIZE 5 | ||
48 | - SYMBOL "ponto" | ||
49 | - WIDTH 1 | ||
50 | - END | ||
51 | - END | ||
52 | - END | ||
53 | -END | 1 | +MAP |
2 | + FONTSET "../symbols/fontes.txt" | ||
3 | + SYMBOLSET "../symbols/simbolos.sym" | ||
4 | + LAYER | ||
5 | + CONNECTION "" | ||
6 | + DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\sc22\povoado.shp" | ||
7 | + METADATA | ||
8 | + "METAESTAT_ID_MEDIDA_VARIAVEL" "" | ||
9 | + "ltempoitemimagem" "" | ||
10 | + "cache" "" | ||
11 | + "ltempoitemdescricao" "" | ||
12 | + "CLASSE" "SIM" | ||
13 | + "ltempoiteminicio" "" | ||
14 | + "palletestep" "" | ||
15 | + "ltempoitemtip" "" | ||
16 | + "permitekmz" "sim" | ||
17 | + "temporizador" "5" | ||
18 | + "iconetema" "" | ||
19 | + "ltempoitemtitulo" "" | ||
20 | + "description_template" "" | ||
21 | + "ltempoitemlink" "" | ||
22 | + "METAESTAT_CODIGO_TIPO_REGIAO" "" | ||
23 | + "palletefile" "" | ||
24 | + "ltempoformatodata" "" | ||
25 | + "permitedownload" "sim" | ||
26 | + "permitecomentario" "NAO" | ||
27 | + "ltempoitemicone" "" | ||
28 | + "metaestat" "" | ||
29 | + "download" "SIM" | ||
30 | + "arquivokmz" "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\povoado.kmz" | ||
31 | + "arquivodownload" "" | ||
32 | + "permiteogc" "" | ||
33 | + "permitekml" "sim" | ||
34 | + "TEMA" "Povoado" | ||
35 | + "editorsql" "" | ||
36 | + "legendaimg" "http://www.rockingsmileys.com/wp-content/uploads/2011/03/Happy_eyebrowes_smileys-150x150.png" | ||
37 | + "ltempoitemfim" "" | ||
38 | + END # METADATA | ||
39 | + NAME "povoado" | ||
40 | + STATUS OFF | ||
41 | + TILEITEM "location" | ||
42 | + TYPE POINT | ||
43 | + UNITS METERS | ||
44 | + CLASS | ||
45 | + NAME "" | ||
46 | + STYLE | ||
47 | + COLOR 0 0 0 | ||
48 | + OFFSET 0 0 | ||
49 | + SIZE 5 | ||
50 | + SYMBOL "ponto" | ||
51 | + END # STYLE | ||
52 | + END # CLASS | ||
53 | + END # LAYER | ||
54 | + | ||
55 | +END # MAP | ||
56 | + |