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 | 7 | O padrão XML utilizado é compatível com a estrutura de um projeto do softwrae GVSIG ate a versão 1.1 |
| 8 | 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 | 14 | Licenca: |
| 11 | 15 | |
| 12 | 16 | GPL2 |
| ... | ... | @@ -33,14 +37,17 @@ Arquivo: |
| 33 | 37 | |
| 34 | 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 | 40 | include("../../ms_configura.php"); |
| 41 | 41 | include_once("../../classesphp/funcoes_gerais.php"); |
| 42 | 42 | include_once("../../classesphp/carrega_ext.php"); |
| 43 | 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 | 51 | error_reporting(0); |
| 45 | 52 | if(!isset($forcawms)){$forcawms = "nao";} |
| 46 | 53 | $objcontype[0] = "MS_INLINE"; |
| ... | ... | @@ -70,6 +77,13 @@ $objlayertypes[8] = "MS_LAYER_CHART"; |
| 70 | 77 | |
| 71 | 78 | $codigoLayer = $id; |
| 72 | 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 | 87 | $mapa = ms_newMapObj($mapfile); |
| 74 | 88 | if(!isset($tipoparse) || $tipoparse=="") |
| 75 | 89 | {mapfile();exit;} |
| ... | ... | @@ -267,7 +281,7 @@ function legendaSimples($layername) |
| 267 | 281 | // |
| 268 | 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 | 285 | $layers = $mapa->getalllayernames(); |
| 272 | 286 | $dados = array(); |
| 273 | 287 | $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; |
| ... | ... | @@ -355,11 +369,20 @@ function mapfile() |
| 355 | 369 | else |
| 356 | 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 | 386 | $xml .= "</connection>\n"; |
| 364 | 387 | $d = explode("(",$d); |
| 365 | 388 | $d = explode(")",$d[1]); |
| ... | ... | @@ -448,5 +471,4 @@ function pegaEstilos($xml,$classe) |
| 448 | 471 | } |
| 449 | 472 | return $xml; |
| 450 | 473 | } |
| 451 | - | |
| 452 | 474 | ?> |
| 453 | 475 | \ No newline at end of file | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -2451,18 +2451,33 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ |
| 2451 | 2451 | Function: validaAcessoTemas |
| 2452 | 2452 | |
| 2453 | 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 | 2466 | $indevidos = listaLayersIndevidos($map_file); |
| 2467 | + $existeIndevidos = false; | |
| 2457 | 2468 | if(count($indevidos) > 0){ |
| 2469 | + $existeIndevidos = true; | |
| 2458 | 2470 | $m = ms_newMapObj($map_file); |
| 2459 | 2471 | foreach($indevidos as $i){ |
| 2460 | 2472 | $l = $m->getlayerbyname($i); |
| 2461 | 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 | 2483 | Function: listaTemasRestritos |
| ... | ... | @@ -2500,6 +2515,10 @@ function listaLayersIndevidos($map_file){ |
| 2500 | 2515 | for ($i=0;$i < $c;++$i) { |
| 2501 | 2516 | $layer = $m->getlayer($i); |
| 2502 | 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 | 2522 | if($meta != ""){ |
| 2504 | 2523 | $t = $restritos[$meta]; |
| 2505 | 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 | 47 | e/ou modificá-lo sob os termos da Licença Pública Geral |
| 48 | 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 | 51 | de que seja útil, |
| 52 | 52 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
| 53 | 53 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
| ... | ... | @@ -112,8 +112,7 @@ include_once("pega_variaveis.php"); |
| 112 | 112 | $interfaceTemp = $interface; |
| 113 | 113 | // |
| 114 | 114 | //inicializa a sessão |
| 115 | -//TEMA2SLD é usado por datadownload.htm //TODO MANTEMDADOSREGIAO | |
| 116 | - | |
| 115 | +//TEMA2SLD é usado por datadownload.htm | |
| 117 | 116 | // |
| 118 | 117 | if ($funcao != "criaMapa" && $funcao != "TEMA2SLD"){ |
| 119 | 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 | + | ... | ... |