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 | + |