Commit 5b2896c513fb9a6a13c5310444429e71732032c6
1 parent
3ecbded3
Exists in
master
and in
7 other branches
Inclusão do controle de acesso por grupos de usuários na definição dos mapfiles
Showing
14 changed files
with
295 additions
and
169 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/html/editormapfile.html
| @@ -74,6 +74,8 @@ body { | @@ -74,6 +74,8 @@ body { | ||
| 74 | as características de cada LAYER nas opções | 74 | as características de cada LAYER nas opções |
| 75 | abaixo. <br> Para incluir o tema nos menus, <a | 75 | abaixo. <br> Para incluir o tema nos menus, <a |
| 76 | href='arvore.html'>edite a árvore de temas </a> <br> | 76 | href='arvore.html'>edite a árvore de temas </a> <br> |
| 77 | + <p>Importante: a restrição ao tema por meio da definição de grupos de usuários não bloqueia o acesso por meio de download, WMS, KML, etc. | ||
| 78 | + Para bloquear esse tipo de acesso é necessário alterar as opções específicas. Por padrão, esses serviços são habilitados para qualquer usuário, não sendo possível bloquear apenas para determinados grupos. | ||
| 77 | <div id="letras"></div> | 79 | <div id="letras"></div> |
| 78 | <p>Mapfiles (arquivos .map existentes no diretório i3geo/temas):</p> | 80 | <p>Mapfiles (arquivos .map existentes no diretório i3geo/temas):</p> |
| 79 | <div id="tabela" style="left: -5px;"></div> | 81 | <div id="tabela" style="left: -5px;"></div> |
admin/js/arvore.js
| @@ -854,10 +854,13 @@ function gravaDados(tipo,id) | @@ -854,10 +854,13 @@ function gravaDados(tipo,id) | ||
| 854 | } | 854 | } |
| 855 | if(tipo == "raizmenu" || tipo == "raizgrupo") | 855 | if(tipo == "raizmenu" || tipo == "raizgrupo") |
| 856 | { | 856 | { |
| 857 | - var texto = obj.options[obj.selectedIndex].text; | ||
| 858 | - var no = tree.getNodeByProperty("id_raiz",id); | ||
| 859 | - no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto; | ||
| 860 | - no.html = no.getContentEl().innerHTML; | 857 | + var obje = document.getElementById("Eid_tema"); |
| 858 | + if(obje){ | ||
| 859 | + var texto = obje.options[obje.selectedIndex].text; | ||
| 860 | + var no = tree.getNodeByProperty("id_raiz",id); | ||
| 861 | + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto; | ||
| 862 | + no.html = no.getContentEl().innerHTML; | ||
| 863 | + } | ||
| 861 | } | 864 | } |
| 862 | core_carregando("desativa"); | 865 | core_carregando("desativa"); |
| 863 | } | 866 | } |
admin/php/classe_arvore.php
| @@ -39,6 +39,8 @@ Classe utilizada para compor a &aacute;rvore de temas ou obter dados espec&iacut | @@ -39,6 +39,8 @@ Classe utilizada para compor a &aacute;rvore de temas ou obter dados espec&iacut | ||
| 39 | */ | 39 | */ |
| 40 | class Arvore | 40 | class Arvore |
| 41 | { | 41 | { |
| 42 | + //temas com acesso restrito e que nao podem ser acessados pelo usuario que esta logado | ||
| 43 | + public $temassindevidos; | ||
| 42 | protected $locaplic; | 44 | protected $locaplic; |
| 43 | //subgrupos que tem pelo menos um tema | 45 | //subgrupos que tem pelo menos um tema |
| 44 | //public $sql_subgrupos = "select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; | 46 | //public $sql_subgrupos = "select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; |
| @@ -73,40 +75,36 @@ class Arvore | @@ -73,40 +75,36 @@ class Arvore | ||
| 73 | if(!empty($esquemaadmin)){ | 75 | if(!empty($esquemaadmin)){ |
| 74 | $this->esquemaadmin = $esquemaadmin."."; | 76 | $this->esquemaadmin = $esquemaadmin."."; |
| 75 | } | 77 | } |
| 76 | - if(!isset($convUTF)) | ||
| 77 | - { | 78 | + if(!isset($convUTF)){ |
| 78 | $convUTF = true; | 79 | $convUTF = true; |
| 79 | } | 80 | } |
| 80 | $this->convUTF = $convUTF; | 81 | $this->convUTF = $convUTF; |
| 81 | $this->dbh = $dbh; | 82 | $this->dbh = $dbh; |
| 82 | 83 | ||
| 83 | $this->idioma = $idioma; | 84 | $this->idioma = $idioma; |
| 84 | - if($idioma == "pt") | ||
| 85 | - { | 85 | + if($idioma == "pt"){ |
| 86 | $coluna = "nome_grupo"; | 86 | $coluna = "nome_grupo"; |
| 87 | } | 87 | } |
| 88 | - else | ||
| 89 | - {$coluna = $idioma; | 88 | + else{ |
| 89 | + $coluna = $idioma; | ||
| 90 | } | 90 | } |
| 91 | $this->sql_grupos = "select i3geoadmin_grupos.$coluna as nome_grupo,id_n1,id_menu,i3geoadmin_n1.publicado,n1_perfil from ".$this->esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo "; | 91 | $this->sql_grupos = "select i3geoadmin_grupos.$coluna as nome_grupo,id_n1,id_menu,i3geoadmin_n1.publicado,n1_perfil from ".$this->esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo "; |
| 92 | 92 | ||
| 93 | - if($idioma == "pt") | ||
| 94 | - { | 93 | + if($idioma == "pt"){ |
| 95 | $coluna = "nome_subgrupo"; | 94 | $coluna = "nome_subgrupo"; |
| 96 | } | 95 | } |
| 97 | - else | ||
| 98 | - {$coluna = $idioma; | 96 | + else{ |
| 97 | + $coluna = $idioma; | ||
| 99 | } | 98 | } |
| 100 | $this->sql_subgrupos = "select i3geoadmin_subgrupos.$coluna as nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from ".$this->esquemaadmin."i3geoadmin_n2 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; | 99 | $this->sql_subgrupos = "select i3geoadmin_subgrupos.$coluna as nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from ".$this->esquemaadmin."i3geoadmin_n2 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; |
| 101 | 100 | ||
| 102 | - if($idioma == "pt") | ||
| 103 | - { | 101 | + if($idioma == "pt"){ |
| 104 | $coluna = "nome_tema"; | 102 | $coluna = "nome_tema"; |
| 105 | } | 103 | } |
| 106 | - else | ||
| 107 | - {$coluna = $idioma; | 104 | + else{ |
| 105 | + $coluna = $idioma; | ||
| 108 | } | 106 | } |
| 109 | - $this->sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM ".$this->esquemaadmin."i3geoadmin_raiz LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema "; | 107 | + $this->sql_temasraiz = "select codigo_tema,id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM ".$this->esquemaadmin."i3geoadmin_raiz LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema "; |
| 110 | $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.$coluna as nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from ".$this->esquemaadmin."i3geoadmin_n3 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema "; | 108 | $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.$coluna as nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from ".$this->esquemaadmin."i3geoadmin_n3 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema "; |
| 111 | 109 | ||
| 112 | //$this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas "; | 110 | //$this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas "; |
| @@ -120,10 +118,13 @@ class Arvore | @@ -120,10 +118,13 @@ class Arvore | ||
| 120 | $this->editor = false; | 118 | $this->editor = false; |
| 121 | $this->editor = $this->verificaOperacaoSessao("admin/php/classe_arvore/editor"); | 119 | $this->editor = $this->verificaOperacaoSessao("admin/php/classe_arvore/editor"); |
| 122 | $this->pubsql = " (publicado != 'NAO' or publicado isnull) and "; | 120 | $this->pubsql = " (publicado != 'NAO' or publicado isnull) and "; |
| 123 | - if($this->editor) | ||
| 124 | - { | 121 | + if($this->editor){ |
| 125 | $this->pubsql = ""; | 122 | $this->pubsql = ""; |
| 126 | } | 123 | } |
| 124 | + if(!function_exists("listaTemasIndevidos")){ | ||
| 125 | + include_once(__DIR__."/../../classesphp/funcoes_gerais.php"); | ||
| 126 | + } | ||
| 127 | + $this->temasindevidos = listaTemasIndevidos(); | ||
| 127 | } | 128 | } |
| 128 | function __destruct() | 129 | function __destruct() |
| 129 | { | 130 | { |
| @@ -131,6 +132,20 @@ class Arvore | @@ -131,6 +132,20 @@ class Arvore | ||
| 131 | $this->dbhw = null; | 132 | $this->dbhw = null; |
| 132 | } | 133 | } |
| 133 | /* | 134 | /* |
| 135 | + Function: validaTemas | ||
| 136 | + | ||
| 137 | + Remove de um array os temas que nao sao permitidos ao usuario atualmente logado | ||
| 138 | + */ | ||
| 139 | + function validaTemas($linhas,$id){ | ||
| 140 | + $res = array(); | ||
| 141 | + foreach($linhas as $l){ | ||
| 142 | + if(!in_array($l[$id],$this->temasindevidos)){ | ||
| 143 | + array_push($res,$l); | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + return $res; | ||
| 147 | + } | ||
| 148 | + /* | ||
| 134 | Function: pegaListaDeMenus | 149 | Function: pegaListaDeMenus |
| 135 | 150 | ||
| 136 | Retorna a lista de menus | 151 | Retorna a lista de menus |
| @@ -145,20 +160,20 @@ class Arvore | @@ -145,20 +160,20 @@ class Arvore | ||
| 145 | */ | 160 | */ |
| 146 | function pegaListaDeMenus($perfil) | 161 | function pegaListaDeMenus($perfil) |
| 147 | { | 162 | { |
| 148 | - if($this->idioma == "pt") | ||
| 149 | - { | 163 | + if($this->idioma == "pt"){ |
| 150 | $coluna = "nome_menu"; | 164 | $coluna = "nome_menu"; |
| 151 | } | 165 | } |
| 152 | - else | ||
| 153 | - {$coluna = $this->idioma; | 166 | + else{ |
| 167 | + $coluna = $this->idioma; | ||
| 154 | } | 168 | } |
| 155 | if($this->editor == true) | 169 | if($this->editor == true) |
| 156 | { | 170 | { |
| 157 | $perfil = ""; | 171 | $perfil = ""; |
| 158 | $sql = "SELECT publicado_menu,'' as perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus order by nome_menu"; | 172 | $sql = "SELECT publicado_menu,'' as perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus order by nome_menu"; |
| 159 | } | 173 | } |
| 160 | - else | 174 | + else{ |
| 161 | $sql = "SELECT publicado_menu,perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu isnull order by nome_menu"; | 175 | $sql = "SELECT publicado_menu,perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu isnull order by nome_menu"; |
| 176 | + } | ||
| 162 | $regs = $this->execSQL($sql); | 177 | $regs = $this->execSQL($sql); |
| 163 | $resultado = array(); | 178 | $resultado = array(); |
| 164 | foreach($regs as $reg) | 179 | foreach($regs as $reg) |
| @@ -460,10 +475,10 @@ class Arvore | @@ -460,10 +475,10 @@ class Arvore | ||
| 460 | 475 | ||
| 461 | {array} | 476 | {array} |
| 462 | */ | 477 | */ |
| 463 | - function pegaGruposMenu($id_menu) | ||
| 464 | - { | 478 | + function pegaGruposMenu($id_menu){ |
| 465 | $grupos = $this->execSQL($this->sql_grupos."where ".$this->pubsql." id_menu='$id_menu' order by ordem"); | 479 | $grupos = $this->execSQL($this->sql_grupos."where ".$this->pubsql." id_menu='$id_menu' order by ordem"); |
| 466 | $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem"); | 480 | $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem"); |
| 481 | + $raiz = $this->validaTemas($raiz,"codigo_tema"); | ||
| 467 | return array("raiz"=>$raiz,"grupos"=>$grupos); | 482 | return array("raiz"=>$raiz,"grupos"=>$grupos); |
| 468 | } | 483 | } |
| 469 | /* | 484 | /* |
| @@ -485,6 +500,7 @@ class Arvore | @@ -485,6 +500,7 @@ class Arvore | ||
| 485 | { | 500 | { |
| 486 | $subgrupos = $this->execSQL($this->sql_subgrupos."where ".$this->pubsql." i3geoadmin_n2.id_n1='$id_n1' order by ordem"); | 501 | $subgrupos = $this->execSQL($this->sql_subgrupos."where ".$this->pubsql." i3geoadmin_n2.id_n1='$id_n1' order by ordem"); |
| 487 | $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); | 502 | $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); |
| 503 | + $raiz = $this->validaTemas($raiz,"codigo_tema"); | ||
| 488 | return array("raiz"=>$raiz,"subgrupos"=>$subgrupos); | 504 | return array("raiz"=>$raiz,"subgrupos"=>$subgrupos); |
| 489 | } | 505 | } |
| 490 | /* | 506 | /* |
| @@ -504,7 +520,9 @@ class Arvore | @@ -504,7 +520,9 @@ class Arvore | ||
| 504 | */ | 520 | */ |
| 505 | function pegaTemasRaizGrupo($id_menu,$id_n1) | 521 | function pegaTemasRaizGrupo($id_menu,$id_n1) |
| 506 | { | 522 | { |
| 507 | - return $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); | 523 | + $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); |
| 524 | + $raiz = $this->validaTemas($raiz,"codigo_tema"); | ||
| 525 | + return $raiz; | ||
| 508 | } | 526 | } |
| 509 | /* | 527 | /* |
| 510 | Function: pegaTema | 528 | Function: pegaTema |
| @@ -548,7 +566,9 @@ class Arvore | @@ -548,7 +566,9 @@ class Arvore | ||
| 548 | */ | 566 | */ |
| 549 | function pegaTemasSubGrupo($id_n2) | 567 | function pegaTemasSubGrupo($id_n2) |
| 550 | { | 568 | { |
| 551 | - return $this->execSQL($this->sql_temasSubgrupo."where ".$this->pubsql." i3geoadmin_n3.id_n2='$id_n2' order by ordem"); | 569 | + $temas = $this->execSQL($this->sql_temasSubgrupo."where ".$this->pubsql." i3geoadmin_n3.id_n2='$id_n2' order by ordem"); |
| 570 | + $temas = $this->validaTemas($temas,"codigo_tema"); | ||
| 571 | + return $temas; | ||
| 552 | } | 572 | } |
| 553 | /* | 573 | /* |
| 554 | Function: formataGruposMenu | 574 | Function: formataGruposMenu |
| @@ -573,12 +593,10 @@ class Arvore | @@ -573,12 +593,10 @@ class Arvore | ||
| 573 | $dados = $this->pegaGruposMenu($id_menu); | 593 | $dados = $this->pegaGruposMenu($id_menu); |
| 574 | $resultado = array(); | 594 | $resultado = array(); |
| 575 | $temasraiz = array(); | 595 | $temasraiz = array(); |
| 576 | - foreach($dados["raiz"] as $temar) | ||
| 577 | - { | 596 | + foreach($dados["raiz"] as $temar){ |
| 578 | $temasraiz[] = $this->formataTema($temar["id_tema"]); | 597 | $temasraiz[] = $this->formataTema($temar["id_tema"]); |
| 579 | } | 598 | } |
| 580 | - if(count($dados["grupos"]) == 0) | ||
| 581 | - { | 599 | + if(count($dados["grupos"]) == 0){ |
| 582 | $grupos[] = array(); | 600 | $grupos[] = array(); |
| 583 | } | 601 | } |
| 584 | foreach($dados["grupos"] as $grupo) | 602 | foreach($dados["grupos"] as $grupo) |
admin/php/editormapfile.php
| @@ -1080,6 +1080,7 @@ function refazerLayer() | @@ -1080,6 +1080,7 @@ function refazerLayer() | ||
| 1080 | $nl = ms_newLayerObj($mapatema,$layernovo); | 1080 | $nl = ms_newLayerObj($mapatema,$layernovo); |
| 1081 | $nl->set("name",$codigomap); | 1081 | $nl->set("name",$codigomap); |
| 1082 | $nl->setmetadata("nomeoriginal",""); | 1082 | $nl->setmetadata("nomeoriginal",""); |
| 1083 | + $nl->setmetadata("temaoriginal",""); | ||
| 1083 | $nl->setmetadata("olopacity",""); | 1084 | $nl->setmetadata("olopacity",""); |
| 1084 | $nl->setmetadata("olstatus",""); | 1085 | $nl->setmetadata("olstatus",""); |
| 1085 | $nl->setmetadata("gmopacity",""); | 1086 | $nl->setmetadata("gmopacity",""); |
| @@ -1283,7 +1284,7 @@ function adicionaGrupoUsrTema(){ | @@ -1283,7 +1284,7 @@ function adicionaGrupoUsrTema(){ | ||
| 1283 | if($q){ | 1284 | if($q){ |
| 1284 | $teste = $q->fetchAll(); | 1285 | $teste = $q->fetchAll(); |
| 1285 | if(count($teste) == 0){ | 1286 | if(count($teste) == 0){ |
| 1286 | - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupotema (id_tema,id_grupo) VALUES ($id_tema,$id_grupo)"); | 1287 | + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupotema (id_tema,id_grupo) VALUES ($id_tema , $id_grupo)"); |
| 1287 | } | 1288 | } |
| 1288 | } | 1289 | } |
| 1289 | return "ok"; | 1290 | return "ok"; |
admin/php/login.php
| @@ -106,6 +106,7 @@ switch (strtoupper($funcao)) | @@ -106,6 +106,7 @@ switch (strtoupper($funcao)) | ||
| 106 | $_SESSION["senha"] = $senha; | 106 | $_SESSION["senha"] = $senha; |
| 107 | $_SESSION["papeis"] = $teste["papeis"]; | 107 | $_SESSION["papeis"] = $teste["papeis"]; |
| 108 | $_SESSION["operacoes"] = $teste["operacoes"]; | 108 | $_SESSION["operacoes"] = $teste["operacoes"]; |
| 109 | + $_SESSION["gruposusr"] = $teste["gruposusr"]; | ||
| 109 | $fingerprint = 'I3GEOLOGIN' . $_SERVER['HTTP_USER_AGENT']; | 110 | $fingerprint = 'I3GEOLOGIN' . $_SERVER['HTTP_USER_AGENT']; |
| 110 | //var_dump($_SESSION["operacoes"]);exit; | 111 | //var_dump($_SESSION["operacoes"]);exit; |
| 111 | $_SESSION['fingerprint'] = md5($fingerprint . session_id()); | 112 | $_SESSION['fingerprint'] = md5($fingerprint . session_id()); |
| @@ -238,6 +239,7 @@ function autenticaUsuario($usuario,$senha){ | @@ -238,6 +239,7 @@ function autenticaUsuario($usuario,$senha){ | ||
| 238 | if(count($dados) > 0){ | 239 | if(count($dados) > 0){ |
| 239 | $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$locaplic); | 240 | $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$locaplic); |
| 240 | $op = pegadados("SELECT O.codigo, PU.id_usuario FROM ".$esquemaadmin."i3geousr_operacoes AS O JOIN ".$esquemaadmin."i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geousr_papelusuario AS PU ON OP.id_papel = PU.id_papel WHERE id_usuario = ".$dados[0]["id_usuario"],$locaplic); | 241 | $op = pegadados("SELECT O.codigo, PU.id_usuario FROM ".$esquemaadmin."i3geousr_operacoes AS O JOIN ".$esquemaadmin."i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geousr_papelusuario AS PU ON OP.id_papel = PU.id_papel WHERE id_usuario = ".$dados[0]["id_usuario"],$locaplic); |
| 242 | + $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupousuario where id_usuario = ".$dados[0]["id_usuario"]); | ||
| 241 | $operacoes = array(); | 243 | $operacoes = array(); |
| 242 | foreach($op as $o){ | 244 | foreach($op as $o){ |
| 243 | $operacoes[$o["codigo"]] = true; | 245 | $operacoes[$o["codigo"]] = true; |
| @@ -246,7 +248,11 @@ function autenticaUsuario($usuario,$senha){ | @@ -246,7 +248,11 @@ function autenticaUsuario($usuario,$senha){ | ||
| 246 | foreach($pa as $p){ | 248 | foreach($pa as $p){ |
| 247 | $papeis[] = $p["id_papel"]; | 249 | $papeis[] = $p["id_papel"]; |
| 248 | } | 250 | } |
| 249 | - $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes); | 251 | + $gruposusr = array(); |
| 252 | + foreach($gr as $p){ | ||
| 253 | + $gruposusr[] = $p["id_grupo"]; | ||
| 254 | + } | ||
| 255 | + $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes,"gruposusr"=>$gruposusr); | ||
| 250 | return $r; | 256 | return $r; |
| 251 | } | 257 | } |
| 252 | else{ | 258 | else{ |
classesphp/classe_mapa.php
| @@ -927,6 +927,8 @@ Ao ser adicionado, todos os layers do arquivo indicado ser&atilde;o acrescentado | @@ -927,6 +927,8 @@ Ao ser adicionado, todos os layers do arquivo indicado ser&atilde;o acrescentado | ||
| 927 | Os layers que formam grupos também são processados, tendo seus nomes alterados de acordo. | 927 | Os layers que formam grupos também são processados, tendo seus nomes alterados de acordo. |
| 928 | Cada novo layer receberá um novo nome, definido de forma aleatória. | 928 | Cada novo layer receberá um novo nome, definido de forma aleatória. |
| 929 | Os nomes dos temas podem conter o caminho completo do mapfile. | 929 | Os nomes dos temas podem conter o caminho completo do mapfile. |
| 930 | +O nome original do LAYER (NAME) sera armazenado no metadata nomeoriginal | ||
| 931 | +O nome do tema (mapfile) original sera armazenado no metadata temaoriginal | ||
| 930 | 932 | ||
| 931 | Parametros: | 933 | Parametros: |
| 932 | 934 | ||
| @@ -984,6 +986,7 @@ $random - indica se os nomes dos novos layers ser&atilde;o modificados ou nao | @@ -984,6 +986,7 @@ $random - indica se os nomes dos novos layers ser&atilde;o modificados ou nao | ||
| 984 | autoClasses($nlayer,$this->mapa); | 986 | autoClasses($nlayer,$this->mapa); |
| 985 | $nlayer->set("status",MS_DEFAULT); | 987 | $nlayer->set("status",MS_DEFAULT); |
| 986 | $nlayer->setmetadata("nomeoriginal",$nlayer->name); | 988 | $nlayer->setmetadata("nomeoriginal",$nlayer->name); |
| 989 | + $nlayer->setmetadata("temaoriginal",str_replace(".map","",basename($nomemap))); | ||
| 987 | $nlayer->set("name",$nomeunico[$n]); | 990 | $nlayer->set("name",$nomeunico[$n]); |
| 988 | //altera o nome do grupo se existir | 991 | //altera o nome do grupo se existir |
| 989 | if ($nlayer->group != " " && $nlayer->group != "" ) | 992 | if ($nlayer->group != " " && $nlayer->group != "" ) |
classesphp/funcoes_gerais.php
| @@ -3049,4 +3049,109 @@ function permissoesarquivo($arquivo){ | @@ -3049,4 +3049,109 @@ function permissoesarquivo($arquivo){ | ||
| 3049 | 3049 | ||
| 3050 | return $info; | 3050 | return $info; |
| 3051 | } | 3051 | } |
| 3052 | +/* | ||
| 3053 | +Function: validaAcessoTemas | ||
| 3054 | + | ||
| 3055 | +Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios | ||
| 3056 | +*/ | ||
| 3057 | +function validaAcessoTemas($map_file){ | ||
| 3058 | + $indevidos = listaLayersIndevidos($map_file); | ||
| 3059 | + if(count($indevidos) > 0){ | ||
| 3060 | + $m = ms_newMapObj($map_file); | ||
| 3061 | + foreach($indevidos as $i){ | ||
| 3062 | + $l = $m->getlayerbyname($i); | ||
| 3063 | + $l->set("status",MS_DELETE); | ||
| 3064 | + } | ||
| 3065 | + $m->save($map_file); | ||
| 3066 | + } | ||
| 3067 | + return; | ||
| 3068 | +} | ||
| 3069 | +/* | ||
| 3070 | +Function: listaTemasRestritos | ||
| 3071 | + | ||
| 3072 | +Lista os temas que possuem restricao de acesso para apenas alguns grupos de usuarios | ||
| 3073 | + | ||
| 3074 | +O retorno e um array com a chave sendo o codigo do tema e o valor um array com a lista de ids de grupos que podem acessar | ||
| 3075 | +*/ | ||
| 3076 | +function listaTemasRestritos(){ | ||
| 3077 | + include_once(__DIR__."/../admin/php/admin.php"); | ||
| 3078 | + $res = pegaDados("select id_grupo,codigo_tema from ".$esquemaadmin."i3geousr_grupotema as gt,".$esquemaadmin."i3geoadmin_temas as te where gt.id_tema = te.id_tema"); | ||
| 3079 | + $restritos = array(); | ||
| 3080 | + foreach ($res as $r){ | ||
| 3081 | + if($restritos[$r["codigo_tema"]]){ | ||
| 3082 | + array_push($restritos[$r["codigo_tema"]],$r["id_grupo"]); | ||
| 3083 | + } | ||
| 3084 | + else{ | ||
| 3085 | + $restritos[$r["codigo_tema"]] = array($r["id_grupo"]); | ||
| 3086 | + } | ||
| 3087 | + } | ||
| 3088 | + return $restritos; | ||
| 3089 | +} | ||
| 3090 | +/* | ||
| 3091 | +Function: listaLayersIndevidos | ||
| 3092 | + | ||
| 3093 | +Lista os layers de um mapfile que sao restritos e que nao sao permitidos ao usuario logado | ||
| 3094 | +*/ | ||
| 3095 | +function listaLayersIndevidos($map_file){ | ||
| 3096 | + $indevidos = array(); | ||
| 3097 | + $restritos = listaTemasRestritos(); | ||
| 3098 | + if(count($restritos) > 0){ | ||
| 3099 | + $gruposusr = listaGruposUsrLogin(); | ||
| 3100 | + $m = ms_newMapObj($map_file); | ||
| 3101 | + $c = $m->numlayers; | ||
| 3102 | + for ($i=0;$i < $c;++$i) { | ||
| 3103 | + $layer = $m->getlayer($i); | ||
| 3104 | + $meta = $layer->getmetadata("temaoriginal"); | ||
| 3105 | + if($meta != ""){ | ||
| 3106 | + $t = $restritos[$meta]; | ||
| 3107 | + if(!in_array($t,$gruposusr)){ | ||
| 3108 | + array_push($indevidos,$layer->name); | ||
| 3109 | + } | ||
| 3110 | + } | ||
| 3111 | + } | ||
| 3112 | + } | ||
| 3113 | + return $indevidos; | ||
| 3114 | +} | ||
| 3115 | +/* | ||
| 3116 | + Function: listaTemasIndevidos | ||
| 3117 | + | ||
| 3118 | +Lista os temas que sao restritos e que nao sao permitidos ao usuario logado | ||
| 3119 | +*/ | ||
| 3120 | +function listaTemasIndevidos(){ | ||
| 3121 | + $indevidos = array(); | ||
| 3122 | + $restritos = listaTemasRestritos(); | ||
| 3123 | + if(count($restritos) > 0){ | ||
| 3124 | + $gruposusr = listaGruposUsrLogin(); | ||
| 3125 | + $c = count($gruposusr); | ||
| 3126 | + reset($restritos); | ||
| 3127 | + while (list($key, $val) = each($restritos)) { | ||
| 3128 | + //var_dump($val);var_dump($gruposusr);exit; | ||
| 3129 | + if(array_search($gruposusr,$val) === true || $c == 0){ | ||
| 3130 | + array_push($indevidos,$key); | ||
| 3131 | + } | ||
| 3132 | + } | ||
| 3133 | + } | ||
| 3134 | + return $indevidos; | ||
| 3135 | +} | ||
| 3136 | +/* | ||
| 3137 | + Function: listaGruposUsrLogin | ||
| 3138 | + | ||
| 3139 | +Lista os os grupos ao qual pertence o usuario atualmente logado | ||
| 3140 | +*/ | ||
| 3141 | +function listaGruposUsrLogin(){ | ||
| 3142 | + if(empty($_COOKIE["i3geocodigologin"])){ | ||
| 3143 | + return array(); | ||
| 3144 | + } | ||
| 3145 | + session_write_close(); | ||
| 3146 | + $nameatual = session_name(); | ||
| 3147 | + $idatual = session_id(); | ||
| 3148 | + session_name("i3GeoLogin"); | ||
| 3149 | + session_id($_COOKIE["i3geocodigologin"]); | ||
| 3150 | + session_start(); | ||
| 3151 | + $res = $_SESSION["gruposusr"]; | ||
| 3152 | + session_name("$nameatual"); | ||
| 3153 | + session_id($idatual); | ||
| 3154 | + session_start(); | ||
| 3155 | + return $res; | ||
| 3156 | +} | ||
| 3052 | ?> | 3157 | ?> |
classesphp/mapa_controle.php
| @@ -159,7 +159,9 @@ if (isset($debug) && strtolower($debug) == "sim") | @@ -159,7 +159,9 @@ if (isset($debug) && strtolower($debug) == "sim") | ||
| 159 | //se as extensões já estiverem carregadas no PHP, vc pode comentar essa linha para que o processamento fique mais rápido | 159 | //se as extensões já estiverem carregadas no PHP, vc pode comentar essa linha para que o processamento fique mais rápido |
| 160 | // | 160 | // |
| 161 | include_once ("carrega_ext.php"); | 161 | include_once ("carrega_ext.php"); |
| 162 | -include_once("funcoes_gerais.php"); | 162 | +if(!function_exists("sobeAnno")){ |
| 163 | + include_once("funcoes_gerais.php"); | ||
| 164 | +} | ||
| 163 | if ($funcao == "criaMapa") | 165 | if ($funcao == "criaMapa") |
| 164 | { | 166 | { |
| 165 | session_name("i3GeoPHP"); | 167 | session_name("i3GeoPHP"); |
| @@ -182,6 +184,8 @@ if ($funcao == "criaMapa") | @@ -182,6 +184,8 @@ if ($funcao == "criaMapa") | ||
| 182 | include_once("ms_criamapa.php"); | 184 | include_once("ms_criamapa.php"); |
| 183 | $_SESSION["interface"] = $interfaceTemp; | 185 | $_SESSION["interface"] = $interfaceTemp; |
| 184 | cpjson(session_id()); | 186 | cpjson(session_id()); |
| 187 | + //ver funcoes_gerais.php | ||
| 188 | + validaAcessoTemas($_SESSION("map_file")); | ||
| 185 | return; | 189 | return; |
| 186 | } | 190 | } |
| 187 | if (!isset($map_file)) | 191 | if (!isset($map_file)) |
| @@ -249,20 +253,6 @@ Inicia o mapa, pegando os par&acirc;metros necess&aacute;rios para a montagem in | @@ -249,20 +253,6 @@ Inicia o mapa, pegando os par&acirc;metros necess&aacute;rios para a montagem in | ||
| 249 | iniciaMapa(); | 253 | iniciaMapa(); |
| 250 | break; | 254 | break; |
| 251 | /* | 255 | /* |
| 252 | -Valor: MONTAFLAMINGO | ||
| 253 | - | ||
| 254 | -Gera o arquivo xml de configuração para a interface Flamingo. | ||
| 255 | - | ||
| 256 | -O arquivo xml é gravado no diretório temporário do mapserver e contém a string de conexão com o gerador de webservices classesphp/flamingoogc.php | ||
| 257 | -Esse gerador, recebe como parâmetro o id da seção atual e transforma o mapfile atual em um webservcie capaz de ser entendido pelo flamingo. | ||
| 258 | - | ||
| 259 | -<flamingo.inc> | ||
| 260 | -*/ | ||
| 261 | - case "MONTAFLAMINGO": | ||
| 262 | - include("flamingo.inc"); | ||
| 263 | - $retorno = $host."/ms_tmp/".basename(dirname($map_file))."/flamingo.xml"; | ||
| 264 | - break; | ||
| 265 | -/* | ||
| 266 | Valor: OPENLAYERS | 256 | Valor: OPENLAYERS |
| 267 | 257 | ||
| 268 | Prepara o mapa atual para funcionar na interface openlayers. | 258 | Prepara o mapa atual para funcionar na interface openlayers. |
| @@ -1055,11 +1045,11 @@ Adiciona um novo tema ao mapa. | @@ -1055,11 +1045,11 @@ Adiciona um novo tema ao mapa. | ||
| 1055 | copiaSeguranca($map_file); | 1045 | copiaSeguranca($map_file); |
| 1056 | $m = new Mapa($map_file); | 1046 | $m = new Mapa($map_file); |
| 1057 | $salvar = $m->adicionaTema($temas,$locaplic); | 1047 | $salvar = $m->adicionaTema($temas,$locaplic); |
| 1058 | - if($salvar) | ||
| 1059 | - { | 1048 | + if($salvar){ |
| 1060 | $m->salva(); | 1049 | $m->salva(); |
| 1061 | $_SESSION["contadorsalva"]++; | 1050 | $_SESSION["contadorsalva"]++; |
| 1062 | } | 1051 | } |
| 1052 | + validaAcessoTemas($map_file); | ||
| 1063 | $retorno = "ok"; | 1053 | $retorno = "ok"; |
| 1064 | /* | 1054 | /* |
| 1065 | if($interface != "openlayers"){ | 1055 | if($interface != "openlayers"){ |
classesphp/mapa_inicia.php
| @@ -103,6 +103,14 @@ Retorno: | @@ -103,6 +103,14 @@ Retorno: | ||
| 103 | function iniciaMapa() | 103 | function iniciaMapa() |
| 104 | { | 104 | { |
| 105 | global $emailInstituicao,$openid,$interfacePadrao,$mensagemInicia,$kmlurl,$tituloInstituicao,$tempo,$navegadoresLocais,$locaplic,$embedLegenda,$map_file,$mapext,$w,$h,$R_path,$locmapserv,$utilizacgi,$expoeMapfile,$interface; | 105 | global $emailInstituicao,$openid,$interfacePadrao,$mensagemInicia,$kmlurl,$tituloInstituicao,$tempo,$navegadoresLocais,$locaplic,$embedLegenda,$map_file,$mapext,$w,$h,$R_path,$locmapserv,$utilizacgi,$expoeMapfile,$interface; |
| 106 | + // | ||
| 107 | + //verifica se algum tema e restrito a determinado usuario | ||
| 108 | + //as funcoes de validacao encontram-se em funcoes_gerais.php | ||
| 109 | + // | ||
| 110 | + if(!function_exists("validaAcessoTemas")){ | ||
| 111 | + include_once("funcoes_gerais.php"); | ||
| 112 | + } | ||
| 113 | + validaAcessoTemas($_SESSION["map_file"]); | ||
| 106 | if(!isset($kmlurl)) | 114 | if(!isset($kmlurl)) |
| 107 | {$kmlurl = "";} | 115 | {$kmlurl = "";} |
| 108 | error_reporting(0); | 116 | error_reporting(0); |
ferramentas/loginusuario/index.js
| @@ -113,7 +113,7 @@ i3GEOF.loginusuario = { | @@ -113,7 +113,7 @@ i3GEOF.loginusuario = { | ||
| 113 | '<input id=i3geosenha type=password style="width:250px;" value=""/><br>' + | 113 | '<input id=i3geosenha type=password style="width:250px;" value=""/><br>' + |
| 114 | '<p class="paragrafo" ><input id=i3GEOFloginusuario size=20 type=button value="'+$trad("x29")+'" /> <input id=i3GEOFlogoutusuario size=20 type=button value="Logout" />' + | 114 | '<p class="paragrafo" ><input id=i3GEOFloginusuario size=20 type=button value="'+$trad("x29")+'" /> <input id=i3GEOFlogoutusuario size=20 type=button value="Logout" />' + |
| 115 | '<p class="paragrafo" onclick="i3GEOF.loginusuario.recuperarSenha()" style="cursor:pointer;color:blue;">'+$trad("x32")+'</p>' + | 115 | '<p class="paragrafo" onclick="i3GEOF.loginusuario.recuperarSenha()" style="cursor:pointer;color:blue;">'+$trad("x32")+'</p>' + |
| 116 | - '<p class="paragrafo" onclick="i3GEOF.loginusuario.alterarSenha()" style="cursor:pointer;color:blue;">'+$trad("x52")+'</p>'; | 116 | + '<p class="paragrafo" onclick="i3GEOF.loginusuario.alterarSenha()" style="cursor:pointer;color:blue;">'+$trad("x52")+'</p><br>'; |
| 117 | return ins; | 117 | return ins; |
| 118 | }, | 118 | }, |
| 119 | /* | 119 | /* |
ms_criamapa.php
| @@ -647,7 +647,8 @@ function incluiTemasIniciais() | @@ -647,7 +647,8 @@ function incluiTemasIniciais() | ||
| 647 | {$existeraster = true;} | 647 | {$existeraster = true;} |
| 648 | if ($layern->name == "estadosl") | 648 | if ($layern->name == "estadosl") |
| 649 | {$layern->set("data",$locaplic."/aplicmap/dados/estados.shp");} | 649 | {$layern->set("data",$locaplic."/aplicmap/dados/estados.shp");} |
| 650 | - $layern->setmetadata("NOMEORIGINAL",$layern->name); | 650 | + $layern->setmetadata("nomeoriginal",$layern->name); |
| 651 | + $layern->setmetadata("temaoriginal",str_replace(".map","",basename($arqtemp))); | ||
| 651 | autoClasses($layern,$mapn); | 652 | autoClasses($layern,$mapn); |
| 652 | // | 653 | // |
| 653 | //necessário para não alterar a extensão do mapa por esse parâmetro | 654 | //necessário para não alterar a extensão do mapa por esse parâmetro |
temas/acidmap.map
| 1 | MAP | 1 | MAP |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | - FONTSET "c:\ms4w\apache\htdocs\i3geo/symbols/fontes.txt" | ||
| 5 | - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo/symbols/simbolos.sym" | 4 | + FONTSET "../symbols/fontes.txt" |
| 5 | + SYMBOLSET "../symbols/simbolos.sym" | ||
| 6 | LAYER | 6 | LAYER |
| 7 | CONNECTION "http://localhost:8080/geoserver/wms?VALUE_COLUMN=VALOR&SERVICE=AMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&FORMAT=image/png&EXCEPTIONS=application/vnd.ogc.se_inimage&TILED=true&TRANSPARENT=FALSE&VALUE_COLUMN=value&SIMPLIFY_METHOD=1&SIMPLIFY_SIZE=400&INTERVALS[]=10,20,45,70,100&INTERVALS_COLORS[]=0xffffff00,0xffb2,0xff00b2,0xffff00b2,0xff0000b2&RENDERER_TYPE=2&INTERPOLATION_STRATEGY=2&RADIUS=32" | 7 | CONNECTION "http://localhost:8080/geoserver/wms?VALUE_COLUMN=VALOR&SERVICE=AMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&FORMAT=image/png&EXCEPTIONS=application/vnd.ogc.se_inimage&TILED=true&TRANSPARENT=FALSE&VALUE_COLUMN=value&SIMPLIFY_METHOD=1&SIMPLIFY_SIZE=400&INTERVALS[]=10,20,45,70,100&INTERVALS_COLORS[]=0xffffff00,0xffb2,0xff00b2,0xffff00b2,0xff0000b2&RENDERER_TYPE=2&INTERPOLATION_STRATEGY=2&RADIUS=32" |
| 8 | CONNECTIONTYPE WMS | 8 | CONNECTIONTYPE WMS |
temas/biomashp.map
| 1 | MAP | 1 | MAP |
| 2 | - FONTSET "c:\ms4w\apache\htdocs\i3geo\symbols\fontes.txt" | ||
| 3 | - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo\symbols\simbolos.sym" | ||
| 4 | - LAYER | ||
| 5 | - CONNECTION "" | ||
| 6 | - DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\biomas.shp" | ||
| 7 | - FOOTER "teste.htm" | ||
| 8 | - GROUP "biomashp" | ||
| 9 | - HEADER "teste.htm" | ||
| 10 | - METADATA | ||
| 11 | - "ltempoitemimagem" "" | ||
| 12 | - "cache" "SIM" | ||
| 13 | - "CLASSE" "SIM" | ||
| 14 | - "ltempoitemdescricao" "" | ||
| 15 | - "palletestep" "" | ||
| 16 | - "ltempoiteminicio" "" | ||
| 17 | - "permitekmz" "sim" | ||
| 18 | - "ltempoitemtip" "" | ||
| 19 | - "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png" | ||
| 20 | - "description_template" "" | ||
| 21 | - "ltempoitemtitulo" "" | ||
| 22 | - "ltempoitemlink" "" | ||
| 23 | - "palletefile" "" | ||
| 24 | - "extensao" "-44 -23 -39 -21" | ||
| 25 | - "NOMEORIGINAL" "" | ||
| 26 | - "permitedownload" "sim" | ||
| 27 | - "ltempoformatodata" "" | ||
| 28 | - "ltempoitemicone" "" | ||
| 29 | - "download" "SIM" | ||
| 30 | - "permitekml" "sim" | ||
| 31 | - "permiteogc" "" | ||
| 32 | - "convcaracter" "" | ||
| 33 | - "TEMA" "bioma shp" | ||
| 34 | - "identifica" "NAO" | ||
| 35 | - "editorsql" "" | ||
| 36 | - "ltempoitemfim" "" | ||
| 37 | - END | ||
| 38 | - NAME "biomashp" | ||
| 39 | - STATUS OFF | ||
| 40 | - TEMPLATE "none.htm" | ||
| 41 | - OPACITY 50 | ||
| 42 | - TYPE POLYGON | 2 | + FONTSET "../symbols/fontes.txt" |
| 3 | + SYMBOLSET "../symbols/simbolos.sym" | ||
| 4 | + LAYER | ||
| 5 | + CONNECTION "" | ||
| 6 | + DATA "/var/www/geodados/brasil/vegetacao/biomas.shp" | ||
| 7 | + FOOTER "teste.htm" | ||
| 8 | + GROUP "biomashp" | ||
| 9 | + HEADER "teste.htm" | ||
| 10 | + METADATA | ||
| 11 | + "cache" "SIM" | ||
| 12 | + "ltempoitemimagem" "" | ||
| 13 | + "ltempoitemdescricao" "" | ||
| 14 | + "CLASSE" "SIM" | ||
| 15 | + "ltempoiteminicio" "" | ||
| 16 | + "palletestep" "" | ||
| 17 | + "ltempoitemtip" "" | ||
| 18 | + "permitekmz" "sim" | ||
| 19 | + "ltempoitemtitulo" "" | ||
| 20 | + "description_template" "" | ||
| 21 | + "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png" | ||
| 22 | + "ltempoitemlink" "" | ||
| 23 | + "extensao" "-44 -23 -39 -21" | ||
| 24 | + "palletefile" "" | ||
| 25 | + "NOMEORIGINAL" "" | ||
| 26 | + "ltempoformatodata" "" | ||
| 27 | + "permitedownload" "sim" | ||
| 28 | + "ltempoitemicone" "" | ||
| 29 | + "download" "SIM" | ||
| 30 | + "permiteogc" "" | ||
| 31 | + "permitekml" "sim" | ||
| 32 | + "TEMA" "Biomas shapefile" | ||
| 33 | + "convcaracter" "" | ||
| 34 | + "editorsql" "" | ||
| 35 | + "identifica" "NAO" | ||
| 36 | + "ltempoitemfim" "" | ||
| 37 | + END # METADATA | ||
| 38 | + NAME "biomashp" | ||
| 39 | + PROCESSING "ITEMS=CD_LEGENDA" | ||
| 40 | + STATUS OFF | ||
| 41 | + TEMPLATE "none.htm" | ||
| 42 | + TILEITEM "location" | ||
| 43 | + OPACITY 50 | ||
| 44 | + TYPE POLYGON | ||
| 43 | UNITS METERS | 45 | UNITS METERS |
| 44 | - PROCESSING "ITEMS=CD_LEGENDA" | ||
| 45 | - CLASS | ||
| 46 | - NAME "CAATINGA" | ||
| 47 | - EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') | ||
| 48 | - STYLE | ||
| 49 | - ANGLE 360 | ||
| 50 | - COLOR 21 44 114 | ||
| 51 | - SYMBOL 0 | ||
| 52 | - WIDTH 1 | ||
| 53 | - END | ||
| 54 | - TITLE "" | ||
| 55 | - END | ||
| 56 | - CLASS | ||
| 57 | - NAME "PAMPA" | ||
| 58 | - EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') | ||
| 59 | - STYLE | ||
| 60 | - ANGLE 360 | ||
| 61 | - COLOR 225 189 199 | ||
| 62 | - SYMBOL 0 | ||
| 63 | - WIDTH 1 | ||
| 64 | - END | ||
| 65 | - TITLE "" | ||
| 66 | - END | ||
| 67 | - CLASS | ||
| 68 | - NAME "CERRADO" | ||
| 69 | - EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') | ||
| 70 | - STYLE | ||
| 71 | - ANGLE 360 | ||
| 72 | - COLOR 17 235 39 | ||
| 73 | - SYMBOL 0 | ||
| 74 | - WIDTH 1 | ||
| 75 | - END | ||
| 76 | - TITLE "" | ||
| 77 | - END | ||
| 78 | - CLASS | ||
| 79 | - NAME "PANTANAL" | ||
| 80 | - EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') | ||
| 81 | - STYLE | ||
| 82 | - ANGLE 360 | ||
| 83 | - COLOR 242 192 145 | ||
| 84 | - SYMBOL 0 | ||
| 85 | - WIDTH 1 | ||
| 86 | - END | ||
| 87 | - TITLE "" | ||
| 88 | - END | ||
| 89 | - CLASS | ||
| 90 | - NAME "AMAZONIA" | ||
| 91 | - EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') | ||
| 92 | - STYLE | ||
| 93 | - ANGLE 360 | ||
| 94 | - COLOR 149 120 37 | ||
| 95 | - SYMBOL 0 | ||
| 96 | - WIDTH 1 | ||
| 97 | - END | ||
| 98 | - TITLE "" | ||
| 99 | - END | ||
| 100 | - CLASS | ||
| 101 | - NAME "MATA ATLANTICA" | ||
| 102 | - EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') | ||
| 103 | - STYLE | ||
| 104 | - ANGLE 360 | ||
| 105 | - COLOR 208 160 125 | ||
| 106 | - SYMBOL 0 | ||
| 107 | - WIDTH 1 | ||
| 108 | - END | ||
| 109 | - TITLE "" | ||
| 110 | - END | ||
| 111 | - END | ||
| 112 | - | ||
| 113 | -END | ||
| 114 | - | 46 | + CLASS |
| 47 | + NAME "CAATINGA" | ||
| 48 | + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') | ||
| 49 | + STYLE | ||
| 50 | + COLOR 21 44 114 | ||
| 51 | + OFFSET 0 0 | ||
| 52 | + END # STYLE | ||
| 53 | + TITLE "" | ||
| 54 | + END # CLASS | ||
| 55 | + CLASS | ||
| 56 | + NAME "PAMPA" | ||
| 57 | + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') | ||
| 58 | + STYLE | ||
| 59 | + COLOR 225 189 199 | ||
| 60 | + OFFSET 0 0 | ||
| 61 | + END # STYLE | ||
| 62 | + TITLE "" | ||
| 63 | + END # CLASS | ||
| 64 | + CLASS | ||
| 65 | + NAME "CERRADO" | ||
| 66 | + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') | ||
| 67 | + STYLE | ||
| 68 | + COLOR 17 235 39 | ||
| 69 | + OFFSET 0 0 | ||
| 70 | + END # STYLE | ||
| 71 | + TITLE "" | ||
| 72 | + END # CLASS | ||
| 73 | + CLASS | ||
| 74 | + NAME "PANTANAL" | ||
| 75 | + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') | ||
| 76 | + STYLE | ||
| 77 | + COLOR 242 192 145 | ||
| 78 | + OFFSET 0 0 | ||
| 79 | + END # STYLE | ||
| 80 | + TITLE "" | ||
| 81 | + END # CLASS | ||
| 82 | + CLASS | ||
| 83 | + NAME "AMAZONIA" | ||
| 84 | + EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') | ||
| 85 | + STYLE | ||
| 86 | + COLOR 149 120 37 | ||
| 87 | + OFFSET 0 0 | ||
| 88 | + END # STYLE | ||
| 89 | + TITLE "" | ||
| 90 | + END # CLASS | ||
| 91 | + CLASS | ||
| 92 | + NAME "MATA ATLANTICA" | ||
| 93 | + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') | ||
| 94 | + STYLE | ||
| 95 | + COLOR 208 160 125 | ||
| 96 | + OFFSET 0 0 | ||
| 97 | + END # STYLE | ||
| 98 | + TITLE "" | ||
| 99 | + END # CLASS | ||
| 100 | + END # LAYER | ||
| 101 | + | ||
| 102 | +END # MAP | ||
| 103 | + |