Commit a1d28686fa2602cb28d071c1181d049cd19651de

Authored by Edmar Moretti
1 parent d1a68759

Inclusão de cadastro de grupos de usuários

admin/admin.db
No preview for this file type
admin/html/gruposusuarios.html 0 → 100755
@@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 +<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 +<title>Usuarios</title>
  6 +<style type="text/css">
  7 +/*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 +body {
  13 + margin: 0;
  14 + padding: 0;
  15 +}
  16 +</style>
  17 +<script type="text/javascript" src="../js/core.js"></script>
  18 +<script type="text/javascript" src="../js/gruposusuarios.js"></script>
  19 +<link rel="stylesheet" type="text/css" href="admin.css">
  20 +</head>
  21 +<body class=" yui-skin-sam fundoPonto">
  22 + <center>
  23 + <div class="bordaSuperior">&nbsp;</div>
  24 + <div class="mascaraPrincipal" id="divGeral">
  25 + <div id=cabecalhoPrincipal></div>
  26 + <h1>
  27 + Administra&ccedil;&atilde;o do i3geo - Grupos de usu&aacute;rios <img
  28 + src="../imagens/04.png" style="cursor: pointer" id=botaoAjuda />
  29 + </h1>
  30 + <div id="formulario" style="display: none">
  31 + <div id="ajuda">
  32 + <div class="hd">Ajuda</div>
  33 + <div class="bd" style="height: 144px; overflow: auto">
  34 + <p>Cada usu&aacute;rio pode pertencer a um ou mais grupos. Os grupos s&atilde;o utilizados na defini&ccedil;&atilde;o das permiss&otilde;es de usu&aacute;rios para acesso a dados ou mapas
  35 + </div>
  36 + <div class="ft"></div>
  37 + </div>
  38 + <input onclick="adicionaLinha()" type=button id=adiciona
  39 + value="Adicionar grupo" /> <br>
  40 + <p>Grupos cadastrados:</p>
  41 + <div id="tabela" style="left: -5px;"></div>
  42 + <div id=logajax style="display: block"></div>
  43 + </div>
  44 + </div>
  45 + </center>
  46 + <script>
  47 + /*
  48 + Title: Cadastro de grupos de usuarios
  49 +
  50 + Veja tamb&eacute;m:
  51 +
  52 + <core.js>
  53 +
  54 + <usuarios.js>
  55 +
  56 + Licenca:
  57 +
  58 + GPL2
  59 +
  60 + i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  61 +
  62 + Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  63 + Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  64 +
  65 + Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  66 + e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  67 + GNU conforme publicada pela Free Software Foundation;
  68 +
  69 + Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  70 + por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  71 + de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  72 + Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  73 + Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  74 + GNU junto com este programa; se n&atilde;o, escreva para a
  75 + Free Software Foundation, Inc., no endere&ccedil;o
  76 + 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  77 +
  78 + Arquivo:
  79 +
  80 + i3geo/admin/html/gruposusuarios.html
  81 + */
  82 + if (screen.availWidth > 700) {
  83 + document.getElementById("divGeral").style.width = "700px";
  84 + }
  85 + //necessario para a ferramenta login e outras
  86 + i3GEO.configura = {
  87 + locaplic : "../.."
  88 + };
  89 + //
  90 + cabecalhoUsuarios("cabecalhoPrincipal", "gruposusuarios");
  91 + temp = function() {
  92 + document.getElementById("formulario").style.display = "block";
  93 + initMenu();
  94 + };
  95 + i3GEO.login.verificaOperacao("admin/html/usuarios",
  96 + i3GEO.configura.locaplic, temp, "sessao");
  97 + </script>
  98 +</body>
0 \ No newline at end of file 99 \ No newline at end of file
admin/index.html
@@ -139,7 +139,11 @@ @@ -139,7 +139,11 @@
139 </tr> 139 </tr>
140 <tr onclick="abre('html/usuarios.html')"> 140 <tr onclick="abre('html/usuarios.html')">
141 <td><div class=aplicar></div></td> 141 <td><div class=aplicar></div></td>
142 - <td>Controle de usu&aacute;rios</td> 142 + <td>Cadastro de usu&aacute;rios e rela&ccedil;&atilde;o com pap&eacute;is</td>
  143 + </tr>
  144 + <tr onclick="abre('html/gruposusuarios.html')">
  145 + <td><div class=aplicar></div></td>
  146 + <td>Cadastro de grupos e rela&ccedil;&atilde;o com usu&aacute;rios</td>
143 </tr> 147 </tr>
144 </table> 148 </table>
145 </div> 149 </div>
admin/js/core.js
@@ -121,6 +121,7 @@ function cabecalhoUsuarios(id,excluir){ @@ -121,6 +121,7 @@ function cabecalhoUsuarios(id,excluir){
121 {id:"principal",titulo:"In&iacute;cio",link:"../index.html"}, 121 {id:"principal",titulo:"In&iacute;cio",link:"../index.html"},
122 {id:"operacoes",titulo:"Opera&ccedil;&otilde;es",link:"operacoes.html"}, 122 {id:"operacoes",titulo:"Opera&ccedil;&otilde;es",link:"operacoes.html"},
123 {id:"usuarios",titulo:"Usu&aacute;rios",link:"usuarios.html"}, 123 {id:"usuarios",titulo:"Usu&aacute;rios",link:"usuarios.html"},
  124 + {id:"gruposusuarios",titulo:"Grupos e Usu&aacute;rios",link:"gruposusuarios.html"},
124 {id:"login",titulo:"Login",js:"i3GEO.login.dialogo.abreLogin()"} 125 {id:"login",titulo:"Login",js:"i3GEO.login.dialogo.abreLogin()"}
125 ]; 126 ];
126 n = botoes.length; 127 n = botoes.length;
admin/js/gruposusuarios.js 0 → 100755
@@ -0,0 +1,306 @@ @@ -0,0 +1,306 @@
  1 +/*
  2 +Title: gruposusuarios.js
  3 +
  4 +Fun&ccedil;&otilde;es que controlam o cadastro de grupos de usuarios
  5 +
  6 +Licenca:
  7 +
  8 +GPL2
  9 +
  10 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  11 +
  12 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  13 +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  14 +
  15 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  16 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  17 +GNU conforme publicada pela Free Software Foundation;
  18 +
  19 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  20 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  21 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  22 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  23 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  24 +GNU junto com este programa; se n&atilde;o, escreva para a
  25 +Free Software Foundation, Inc., no endere&ccedil;o
  26 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  27 +
  28 +Arquivo:
  29 +
  30 +i3geo/admin/js/gruposusuarios.js
  31 +*/
  32 +YAHOO.namespace("example.container");
  33 +/*
  34 +Function: initMenu
  35 +
  36 +Inicializa o editor
  37 +*/
  38 +function initMenu(){
  39 + ativaBotaoAdicionaGrupo("../php/gruposusuarios.php?funcao=alterarGrupos","adiciona");
  40 + core_carregando("ativa");
  41 + core_ativaPainelAjuda("ajuda","botaoAjuda");
  42 + pegaGrupos();
  43 +}
  44 +function ativaBotaoAdicionaGrupo(sUrl,idBotao){
  45 + var adiciona = function()
  46 + {
  47 + core_carregando("ativa");
  48 + core_carregando(" adicionando um novo registro");
  49 + var callback =
  50 + {
  51 + success:function(o)
  52 + {
  53 + try
  54 + {
  55 + var j = YAHOO.lang.JSON.parse(o.responseText);
  56 + adicionaNosGrupos(j,true);
  57 + editar("grupo",j[j.length-1].id_grupo);
  58 + core_carregando("desativa");
  59 + }
  60 + catch(e){core_handleFailure(e,o.responseText);}
  61 + },
  62 + failure:core_handleFailure,
  63 + argument: { foo:"foo", bar:"bar" }
  64 + };
  65 + core_makeRequest(sUrl,callback);
  66 + };
  67 + //cria o bot&atilde;o de adi&ccedil;&atilde;o de um novo menu
  68 + new YAHOO.widget.Button(idBotao,{ onclick: { fn: adiciona } });
  69 +}
  70 +function pegaGrupos(){
  71 + core_pegaDados("buscando usu&aacute;rios...","../php/gruposusuarios.php?funcao=pegaGrupos","montaArvore");
  72 +}
  73 +/*
  74 +Function: montaArvore
  75 +
  76 +Monta a &aacute;rvore de edi&ccedil;&atilde;o
  77 +
  78 +<PEGAPRANCHAS>
  79 +*/
  80 +function montaArvore(dados){
  81 + YAHOO.example.treeExample = new function() {
  82 + tree = "";
  83 + function changeIconMode(){
  84 + buildTree();
  85 + }
  86 + function loadNodeData(node, fnLoadComplete){
  87 + var sUrl = "../php/gruposusuarios.php?funcao=pegaUsuariosGrupo&id_grupo="+node.data.id_grupo;
  88 + var callback = {
  89 + success: function(oResponse){
  90 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText);
  91 + adicionaNosUsuarios(node,dados,false);
  92 + oResponse.argument.fnLoadComplete();
  93 + },
  94 + failure: function(oResponse){
  95 + oResponse.argument.fnLoadComplete();
  96 + },
  97 + argument:{
  98 + "node": node,
  99 + "fnLoadComplete": fnLoadComplete
  100 + },
  101 + timeout: 25000
  102 + };
  103 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  104 + }
  105 + function buildTree(){
  106 + tree = new YAHOO.widget.TreeView("tabela");
  107 + tree.setDynamicLoad(loadNodeData, 1);
  108 + var root = tree.getRoot();
  109 + var tempNode = new YAHOO.widget.TextNode('', root, false);
  110 + tempNode.isLeaf = true;
  111 + core_carregando("desativa");
  112 + }
  113 + buildTree();
  114 + }();
  115 + adicionaNosGrupos(dados);
  116 + tree.draw();
  117 +}
  118 +function adicionaNosUsuarios(no,dados,redesenha)
  119 +{
  120 + function temaIconMode(){
  121 + var newVal = parseInt(this.value);
  122 + if (newVal != currentIconMode)
  123 + {currentIconMode = newVal;}
  124 + }
  125 + if(!redesenha){
  126 + var conteudo = "<span style=\"cursor:pointer;\" onclick=\"editar('usuario','"+no.data.id_grupo+"')\" ><img style=\"position:relative;top:2px\" src=\"../imagens/05.png\" /><i>Adicionar novo usu&aacute;rio</i></span>";
  127 + var d = {html:conteudo};
  128 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  129 + tempNode.isLeaf = true;
  130 + }
  131 + for (var i=0, j=dados.length; i<j; i++){
  132 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('usuario','"+dados[i].id_grupo+"','"+dados[i].id_usuario+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />";
  133 + if(dados[i].nome != "")
  134 + {conteudo += "&nbsp;<span><b>"+dados[i].login+"</b></span>";}
  135 + else
  136 + {conteudo += "&nbsp;<span style=color:red >Edite para definir o papel!!!</span>";}
  137 + var d = {html:conteudo,id_nousuario:dados[i].id_usuario+"_"+dados[i].id_grupo,tipo:"usuario"};
  138 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  139 + tempNode.isLeaf = true;
  140 + }
  141 + if(redesenha){tree.draw();}
  142 +}
  143 +function adicionaNosGrupos(dados,redesenha){
  144 + var root = tree.getRoot();
  145 + for (var i=0, j=dados.length; i<j; i++){
  146 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('grupo','"+dados[i].id_grupo+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />";
  147 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"editar('grupo','"+dados[i].id_grupo+"')\" title=editar src=\"../imagens/06.png\" /><b>";
  148 + if(dados[i].nome && dados[i].nome != "")
  149 + {conteudo += "&nbsp;<span>"+dados[i].nome+" id: "+dados[i].id_grupo+"</span>";}
  150 + else
  151 + {conteudo += "&nbsp;<span style=color:red >Edite para definir o grupo!!!</span>";}
  152 + var d = {html:conteudo,id_grupo:dados[i].id_grupo,tipo:"grupo"};
  153 + new YAHOO.widget.HTMLNode(d, root, false,true);
  154 + }
  155 + if(redesenha){tree.draw();}
  156 +}
  157 +/*
  158 +Function: editar
  159 +
  160 +Abre o editor de um nó
  161 +*/
  162 +function editar(tipo,id){
  163 + core_carregando("ativa");
  164 + core_carregando(" buscando dados");
  165 + var sUrl = null;
  166 + var callback = {
  167 + success:function(o) {
  168 + try {
  169 + if(tipo == "grupo") {
  170 + var dados = YAHOO.lang.JSON.parse(o.responseText)[0];
  171 + core_montaEditor("","450px","280px","","Grupo");
  172 + montaDivGrupo(dados);
  173 + core_carregando("desativa");
  174 + }
  175 + if(tipo == "usuario") {
  176 + var dados = YAHOO.lang.JSON.parse(o.responseText);
  177 + core_montaEditor("gravaDados('usuario','"+id+"')","250px","100px");
  178 + $i("editor_bd").innerHTML = montaDivUsuario(dados);
  179 + document.getElementById("Eid_usuario").style.width = "200px";
  180 + core_carregando("desativa");
  181 + }
  182 + core_carregando("desativa");
  183 + }
  184 + catch(e){core_handleFailure(e,o.responseText);}
  185 + },
  186 + failure:core_handleFailure,
  187 + argument: { foo:"foo", bar:"bar" }
  188 + };
  189 + if(tipo == "grupo")
  190 + {sUrl = "../php/gruposusuarios.php?funcao=pegaDadosGrupo&id_grupo="+id;}
  191 + if(tipo == "usuario")
  192 + {sUrl = "../php/gruposusuarios.php?funcao=listaUsuarios";}
  193 + if(sUrl)
  194 + {core_makeRequest(sUrl,callback);}
  195 +}
  196 +function montaDivGrupo(i){
  197 + var param = {
  198 + "linhas":[
  199 + {titulo:"Nome:",id:"Enome",size:"50",value:i.nome,tipo:"text",div:""},
  200 + {titulo:"Descri&ccedil;&atilde;o:",id:"Edescricao",size:"50",value:i.descricao,tipo:"text",div:""}
  201 + ]
  202 + };
  203 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditorGrupo />";
  204 + ins += core_geraLinhas(param);
  205 + ins += "<br><br><br>";
  206 + $i("editor_bd").innerHTML = ins;
  207 + var temp = function()
  208 + {gravaDados('grupo',i.id_grupo);};
  209 + new YAHOO.widget.Button("salvarEditorGrupo",{ onclick: { fn: temp }});
  210 +}
  211 +function montaDivUsuario(dados){
  212 + var ins = "<p><select id='Eid_usuario' >";
  213 + ins += core_comboObjeto(dados,"id_usuario","login","","ativo");
  214 + ins += "</select>";
  215 + return(ins);
  216 +}
  217 +/*
  218 +Function: excluir
  219 +
  220 +Exclui um elemento do atlas
  221 +
  222 +<EXCLUIRATLAS>
  223 +
  224 +<EXCLUIRPRANCHA>
  225 +
  226 +<EXCLUIRTEMA>
  227 +*/
  228 +function excluir(tipo,id_grupo,id_usuario)
  229 +{
  230 + var mensagem = " excluindo o registro do usu&aacute;rio= "+id_usuario;
  231 + var no = null;
  232 + var sUrl = null;
  233 + if(tipo == "grupo") {
  234 + no = tree.getNodeByProperty("id_grupo",id_grupo);
  235 + sUrl = "../php/gruposusuarios.php?funcao=excluirGrupo&id_grupo="+id_grupo;
  236 + }
  237 + if(tipo == "usuario") {
  238 + no = tree.getNodeByProperty("id_nousuario",id_usuario+"_"+id_grupo);
  239 + sUrl = "../php/gruposusuarios.php?funcao=excluirUsuarioGrupo&id_grupo="+id_grupo+"&id_usuario="+id_usuario;
  240 + }
  241 + if(sUrl)
  242 + {core_excluiNoTree(sUrl,no,mensagem);}
  243 +}
  244 +/*
  245 +Function: gravaDados
  246 +
  247 +Altera dados de um elemento do Atlas
  248 +
  249 +<ALTERARATLAS>
  250 +
  251 +<ALTERARPRANCHA>
  252 +
  253 +<ALTERARTEMA>
  254 +*/
  255 +function gravaDados(tipo,id){
  256 + var campos = null;
  257 + var par = null;
  258 + var prog = null;
  259 + if(tipo == "grupo"){
  260 + campos = new Array("nome","descricao");
  261 + par = "&id_grupo="+id;
  262 + prog = "../php/gruposusuarios.php?funcao=alterarGrupos";
  263 + }
  264 + if(tipo == "usuario"){
  265 + campos = new Array("id_usuario");
  266 + par = "&id_grupo="+id;
  267 + prog = "../php/gruposusuarios.php?funcao=adicionaUsuarioGrupo";
  268 + }
  269 + for (var i=0;i<campos.length;i++)
  270 + {par += "&"+campos[i]+"="+($i("E"+campos[i]).value);}
  271 +
  272 + var callback = {
  273 + success:function(o){
  274 + try {
  275 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") {
  276 + core_carregando("<span style=color:red >N&atilde;o foi poss&iacute;vel excluir. Verifique se n&atilde;o existem menus vinculados a este tema</span>");
  277 + setTimeout("core_carregando('desativa')",3000);
  278 + }
  279 + else{
  280 + if(tipo == "grupo"){
  281 + var no = tree.getNodeByProperty("id_grupo",id);
  282 + no.getContentEl().getElementsByTagName("span")[0].innerHTML = document.getElementById("Enome").value+" id:"+id;
  283 + no.getContentEl().getElementsByTagName("span")[0].style.color = "";
  284 + no.html = no.getContentEl().innerHTML;
  285 + }
  286 + if(tipo == "usuario"){
  287 + var no = tree.getNodeByProperty("id_grupo",id);
  288 + adicionaNosUsuarios(no,YAHOO.lang.JSON.parse(o.responseText),true);
  289 + }
  290 + core_carregando("desativa");
  291 + }
  292 + YAHOO.example.container.panelEditor.destroy();
  293 + YAHOO.example.container.panelEditor = null;
  294 + }
  295 + catch(e){core_handleFailure(e,o.responseText);}
  296 + },
  297 + failure:core_handleFailure,
  298 + argument: { foo:"foo", bar:"bar" }
  299 + };
  300 + if(prog && par){
  301 + core_carregando("ativa");
  302 + core_carregando(" gravando o registro do id= "+id);
  303 + var sUrl = prog+par;
  304 + core_makeRequest(sUrl,callback,'POST');
  305 + }
  306 +}
0 \ No newline at end of file 307 \ No newline at end of file
admin/php/admin.php
@@ -255,9 +255,15 @@ function verificaFilhos() @@ -255,9 +255,15 @@ function verificaFilhos()
255 if(count($r) > 0) 255 if(count($r) > 0)
256 $res = true; 256 $res = true;
257 } 257 }
258 - if($tabela == "i3geoadmin_usuarios") 258 + if($tabela == "i3geousr_grupos")
259 { 259 {
260 - $r = pegaDados("select * from ".$esquemaadmin."i3geoadmin_papelusuario where id_usuario=$id"); 260 + $r = pegaDados("select * from ".$esquemaadmin."i3geousr_gruposusuario where id_grupo=$id");
  261 + if(count($r) > 0)
  262 + $res = true;
  263 + }
  264 + if($tabela == "i3geousr_usuarios")
  265 + {
  266 + $r = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario where id_usuario=$id");
261 if(count($r) > 0) 267 if(count($r) > 0)
262 $res = true; 268 $res = true;
263 } 269 }
admin/php/criabanco.php
@@ -76,11 +76,11 @@ @@ -76,11 +76,11 @@
76 "CREATE TABLE ".$esquemaadmin."i3geoadmin_n2 (publicado TEXT, ordem NUMERIC, id_n1 NUMERIC, id_n2 INTEGER PRIMARY KEY, id_subgrupo NUMERIC, n2_perfil TEXT)", 76 "CREATE TABLE ".$esquemaadmin."i3geoadmin_n2 (publicado TEXT, ordem NUMERIC, id_n1 NUMERIC, id_n2 INTEGER PRIMARY KEY, id_subgrupo NUMERIC, n2_perfil TEXT)",
77 "CREATE TABLE ".$esquemaadmin."i3geoadmin_n3 (publicado TEXT, ordem NUMERIC, id_n2 NUMERIC, id_n3 INTEGER PRIMARY KEY, id_tema NUMERIC, n3_perfil TEXT)", 77 "CREATE TABLE ".$esquemaadmin."i3geoadmin_n3 (publicado TEXT, ordem NUMERIC, id_n2 NUMERIC, id_n3 INTEGER PRIMARY KEY, id_tema NUMERIC, n3_perfil TEXT)",
78 "CREATE TABLE ".$esquemaadmin."i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)", 78 "CREATE TABLE ".$esquemaadmin."i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)",
79 - "CREATE TABLE ".$esquemaadmin."i3geoadmin_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)",  
80 - "CREATE TABLE ".$esquemaadmin."i3geoadmin_papelusuario (papel_id NUMERIC, usuario_id NUMERIC)",  
81 - "CREATE TABLE ".$esquemaadmin."i3geoadmin_papeis (descricao TEXT, id_papel INTEGER PRIMARY KEY, nome TEXT)",  
82 - "CREATE TABLE ".$esquemaadmin."i3geoadmin_operacoes (id_operacao INTEGER PRIMARY KEY, codigo TEXT, descricao TEXT)",  
83 - "CREATE TABLE ".$esquemaadmin."i3geoadmin_operacoespapeis (id_operacao NUMERIC, id_papel NUMERIC)" 79 + "CREATE TABLE ".$esquemaadmin."i3geousr_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)",
  80 + "CREATE TABLE ".$esquemaadmin."i3geousr_papelusuario (papel_id NUMERIC, usuario_id NUMERIC)",
  81 + "CREATE TABLE ".$esquemaadmin."i3geousr_papeis (descricao TEXT, id_papel INTEGER PRIMARY KEY, nome TEXT)",
  82 + "CREATE TABLE ".$esquemaadmin."i3geousr_operacoes (id_operacao INTEGER PRIMARY KEY, codigo TEXT, descricao TEXT)",
  83 + "CREATE TABLE ".$esquemaadmin."i3geousr_operacoespapeis (id_operacao NUMERIC, id_papel NUMERIC)"
84 ); 84 );
85 if($conexaoadmin == "") 85 if($conexaoadmin == "")
86 { 86 {
@@ -122,37 +122,37 @@ @@ -122,37 +122,37 @@
122 //echo $tabela."<br>"; 122 //echo $tabela."<br>";
123 $q = $dbhw->query($tabela); 123 $q = $dbhw->query($tabela);
124 } 124 }
125 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem executar qualquer tarefa, inclusive cadastrar novos administradores',1,'admin')");  
126 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas',2,'editores')");  
127 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')");  
128 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')");  
129 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_usuarios VALUES(1,'','',1,'admin','admin','admin')");  
130 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papelusuario VALUES(1,1)");  
131 -  
132 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(1,'admin/html/editormapfile','editor de mapfiles do sistema de administracao')");  
133 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(2,'admin/html/operacoes','abre o editor de operacoes')");  
134 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(3,'teste/','teste')");  
135 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(4,'admin/html/arvore','edicao da arvore do catalogo de temas')");  
136 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(5,'admin/html/menus','edicao da lista de menus')");  
137 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(6,'admin/html/ogcws','edicao das preferencias do servico WMS')");  
138 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(7,'admin/html/atlas','edicao de atlas')");  
139 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(8,'admin/html/identifica','lista de sistemas incluidos na ferramenta de identificacao')");  
140 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(9,'admin/html/incluimap','adapta mapfiles antigos para versoes novas do Mapserver')");  
141 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(10,'admin/html/mapas','lista de links para mapas')");  
142 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(11,'admin/html/perfis','lista controlada de perfis')");  
143 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(12,'admin/html/sistemas','lista de sistemas complementares que sao mostrados no catalogo')");  
144 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(13,'admin/html/subirshapefile','upload de shapefile para uma pasta especifica no servidor')");  
145 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(14,'admin/html/tags','edicao da lista controlada de tags')");  
146 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(15,'admin/html/webservices','cadastro de links para webservices')");  
147 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(1,2)");  
148 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(1,3)");  
149 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(4,3)");  
150 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(5,3)");  
151 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(7,3)");  
152 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(10,3)");  
153 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(13,2)");  
154 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(13,4)");  
155 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(15,3)"); 125 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem executar qualquer tarefa, inclusive cadastrar novos administradores',1,'admin')");
  126 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas',2,'editores')");
  127 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')");
  128 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')");
  129 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_usuarios VALUES(1,'','',1,'admin','admin','admin')");
  130 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papelusuario VALUES(1,1)");
  131 +
  132 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(1,'admin/html/editormapfile','editor de mapfiles do sistema de administracao')");
  133 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(2,'admin/html/operacoes','abre o editor de operacoes')");
  134 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(3,'teste/','teste')");
  135 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(4,'admin/html/arvore','edicao da arvore do catalogo de temas')");
  136 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(5,'admin/html/menus','edicao da lista de menus')");
  137 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(6,'admin/html/ogcws','edicao das preferencias do servico WMS')");
  138 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(7,'admin/html/atlas','edicao de atlas')");
  139 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(8,'admin/html/identifica','lista de sistemas incluidos na ferramenta de identificacao')");
  140 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(9,'admin/html/incluimap','adapta mapfiles antigos para versoes novas do Mapserver')");
  141 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(10,'admin/html/mapas','lista de links para mapas')");
  142 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(11,'admin/html/perfis','lista controlada de perfis')");
  143 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(12,'admin/html/sistemas','lista de sistemas complementares que sao mostrados no catalogo')");
  144 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(13,'admin/html/subirshapefile','upload de shapefile para uma pasta especifica no servidor')");
  145 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(14,'admin/html/tags','edicao da lista controlada de tags')");
  146 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(15,'admin/html/webservices','cadastro de links para webservices')");
  147 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,2)");
  148 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,3)");
  149 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(4,3)");
  150 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(5,3)");
  151 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(7,3)");
  152 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(10,3)");
  153 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(13,2)");
  154 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(13,4)");
  155 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(15,3)");
156 156
157 157
158 158
admin/php/gruposusuarios.php 0 → 100755
@@ -0,0 +1,211 @@ @@ -0,0 +1,211 @@
  1 +<?php
  2 +/*
  3 +Title: gruposusuarios.php
  4 +
  5 +Controle das requisi&ccedil;&otilde;es em Ajax utilizadas para gerenciar grupos de usu&aacute;rio e controle de acesso
  6 +
  7 +Recebe as requisi&ccedil;&otilde;es feitas em JavaScript (AJAX) e retorna o resultado para a interface.
  8 +
  9 +O par&acirc;metro "funcao" define qual a opera&ccedil;&atilde;o que ser&aacute; executada. Esse par&acirc;metro &eacute; verificado em um bloco "switch ($funcao)".
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Edmar Moretti
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/classesphp/gruposusuarios.php
  36 +
  37 +Parametros:
  38 +
  39 +funcao - op&ccedil;&atilde;o que ser&aacute; executada (veja abaixo a lista de Valores que esse par&acirc;metro pode assumir).
  40 +
  41 +Retorno:
  42 +
  43 +O resultado da opera&ccedil;&atilde;o ser&aacute; retornado em um objeto CPAINT.
  44 +
  45 +A constru&ccedil;&atilde;o da string JSON &eacute; feita preferencialmente pelas fun&ccedil;&otilde;es nativas do PHP.
  46 +Para efeitos de compatibilidade, uma vez que at&eacute; a vers&atilde;o 4.2 a string JSON era construida pelo CPAINT,
  47 +o objeto CPAINT ainda &eacute; definido, por&eacute;m, a fun&ccedil;&atilde;o cpjson verifica se as fun&ccedil;&otilde;es nativas do PHPO (json)
  48 +est&atilde;o instaladas, se estiverem, utiliza-se a fun&ccedil;&atilde;o nativa, se n&atilde;o, utiliza-se o CPAINT para gerar o JSON.
  49 +
  50 +Exemplo de chamada CPAINT (Ajax) do lado do cliente (javascript):
  51 +
  52 +var p = "classesphp/mapa_controle.php?funcao=crialente&resolucao=1.5&g_sid="+g_sid
  53 +
  54 +var cp = new cpaint()
  55 +
  56 +cp.set_response_type("JSON")
  57 +
  58 +cp.call(p,"lente",ajaxabrelente)
  59 +
  60 +*/
  61 +error_reporting(0);
  62 +//
  63 +//pega as variaveis passadas com get ou post
  64 +//
  65 +include_once(__DIR__."/login.php");
  66 +$funcoesEdicao = array(
  67 + "ALTERARGRUPOS",
  68 + "EXCLUIRGRUPO"
  69 +);
  70 +if(in_array(strtoupper($funcao),$funcoesEdicao)){
  71 + if(verificaOperacaoSessao("admin/html/usuarios") == false){
  72 + retornaJSON("Vc nao pode realizar essa operacao.");exit;
  73 + }
  74 +}
  75 +switch (strtoupper($funcao))
  76 +{
  77 + case "ALTERARGRUPOS":
  78 + $novo = alterarGrupos();
  79 + if($novo == false){
  80 + retornaJSON(array());
  81 + exit;
  82 + }
  83 + $sql = "SELECT id_grupo,nome,descricao from ".$esquemaadmin."i3geousr_grupos WHERE id_grupo = ".$novo;
  84 + retornaJSON(pegaDados($sql));
  85 + exit;
  86 + break;
  87 + case "PEGAGRUPOS":
  88 + retornaJSON(pegaDados("SELECT id_grupo,nome,descricao from ".$esquemaadmin."i3geousr_grupos order by nome"));
  89 + exit;
  90 + break;
  91 + case "PEGAUSUARIOSGRUPO":
  92 + $dados = pegaDados("SELECT U.id_usuario, U.login, UP.id_grupo FROM ".$esquemaadmin."i3geousr_usuarios AS U JOIN ".$esquemaadmin."i3geousr_grupousuario AS UP ON U.id_usuario = UP.id_usuario WHERE UP.id_grupo = $id_grupo");
  93 + retornaJSON($dados);
  94 + exit;
  95 + break;
  96 + case "PEGADADOSGRUPO":
  97 + retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geousr_grupos WHERE id_grupo = $id_grupo"));
  98 + exit;
  99 + break;
  100 + case "EXCLUIRGRUPO":
  101 + $tabela = "i3geousr_grupous";
  102 + $id = $id_grupo;
  103 + $f = verificaFilhos();
  104 + if(!$f){
  105 + excluirGrupo();
  106 + retornaJSON("ok");
  107 + }
  108 + else
  109 + retornaJSON("erro");
  110 + exit;
  111 + break;
  112 + case "ADICIONAUSUARIOGRUPO":
  113 + adicionaUsuarioGrupo();
  114 + $dados = pegaDados("SELECT U.id_usuario, U.login, UP.id_grupo FROM ".$esquemaadmin."i3geousr_usuarios AS U JOIN ".$esquemaadmin."i3geousr_grupousuario AS UP ON U.id_usuario = UP.id_usuario WHERE UP.id_grupo = $id_grupo AND UP.id_usuario = $id_usuario");
  115 + retornaJSON($dados);
  116 + exit;
  117 + break;
  118 + case "EXCLUIRUSUARIOGRUPO":
  119 + retornaJSON(excluirUsuarioGrupo());
  120 + exit;
  121 + break;
  122 + case "LISTAUSUARIOS":
  123 + retornaJSON(pegaDados("Select id_usuario,login,ativo from ".$esquemaadmin."i3geousr_usuarios order by login"));
  124 + exit;
  125 + break;
  126 +}
  127 +cpjson($retorno);
  128 +function alterarGrupos()
  129 +{
  130 + global $id_grupo,$nome,$descricao;
  131 + try
  132 + {
  133 + include(__DIR__."/conexao.php");
  134 + if($convUTF){
  135 + $nome = utf8_encode($nome);
  136 + $descricao = utf8_encode($descricao);
  137 + }
  138 + if($id_grupo != ""){
  139 + //verifica uniciade de login
  140 + $dados = pegaDados("select nome from ".$esquemaadmin."i3geousr_grupos where nome = '$nome'");
  141 + if(count($dados) > 0){
  142 + $retorna = false;
  143 + }
  144 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_grupos SET nome='$nome',descricao='$descricao' WHERE id_grupo = $id_grupo");
  145 + $retorna = $id_grupo;
  146 + }
  147 + else{
  148 + $idtemp = rand (9000,1000000) * -1;
  149 + //echo "INSERT INTO ".$esquemaadmin."i3geousr_grupos (nome) VALUES ('$idtemp')";exit;
  150 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupos (nome) VALUES ('$idtemp')");
  151 + $id = $dbh->query("SELECT id_grupo FROM ".$esquemaadmin."i3geousr_grupos WHERE nome = '$idtemp'");
  152 + $id = $id->fetchAll();
  153 + $id = $id[0]['id_grupo'];
  154 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_grupos SET nome = '' WHERE id_grupo = $id AND nome = '$idtemp'");
  155 + $retorna = $id;
  156 + }
  157 + $dbhw = null;
  158 + $dbh = null;
  159 + return $retorna;
  160 + }
  161 + catch (PDOException $e){
  162 + return "Error!: " . $e->getMessage();
  163 + }
  164 +}
  165 +function adicionaUsuarioGrupo(){
  166 + global $id_usuario,$id_grupo;
  167 + try {
  168 + include(__DIR__."/conexao.php");
  169 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupousuario (id_usuario,id_grupo) VALUES ($id_usuario,$id_grupo)");
  170 + $dbhw = null;
  171 + $dbh = null;
  172 + return "ok";
  173 + }
  174 + catch (PDOException $e){
  175 + return "Error!: " . $e->getMessage();
  176 + }
  177 +}
  178 +function excluirGrupo()
  179 +{
  180 + global $id_grupo;
  181 + try
  182 + {
  183 + include(__DIR__."/conexao.php");
  184 + $dbhw->query("DELETE FROM ".$esquemaadmin."i3geousr_grupos WHERE id_grupo = $id_grupo ");
  185 + $dbhw = null;
  186 + $dbh = null;
  187 + return "ok";
  188 + }
  189 + catch (PDOException $e)
  190 + {
  191 + return "Error!: " . $e->getMessage();
  192 + }
  193 +}
  194 +function excluirUsuarioGrupo()
  195 +{
  196 + global $id_usuario,$id_grupo;
  197 + try
  198 + {
  199 + include(__DIR__."/conexao.php");
  200 + //echo "DELETE from ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = $id_usuario";exit;
  201 + $dbhw->query("DELETE FROM ".$esquemaadmin."i3geousr_grupousuario WHERE id_usuario = $id_usuario AND id_grupo = $id_grupo ");
  202 + $dbhw = null;
  203 + $dbh = null;
  204 + return "ok";
  205 + }
  206 + catch (PDOException $e)
  207 + {
  208 + return "Error!: " . $e->getMessage();
  209 + }
  210 +}
  211 +?>
0 \ No newline at end of file 212 \ No newline at end of file
admin/php/login.php
@@ -163,9 +163,9 @@ switch (strtoupper($funcao)) @@ -163,9 +163,9 @@ switch (strtoupper($funcao))
163 function alterarSenha(){ 163 function alterarSenha(){
164 global $usuario,$novaSenha; 164 global $usuario,$novaSenha;
165 include(__DIR__."/conexao.php"); 165 include(__DIR__."/conexao.php");
166 - $dados = pegaDados("select * from ".$esquemaadmin."i3GEOadmin_usuarios where senha = '".md5($_SESSION["senha"])."' and login = '$usuario' and ativo = 1",$locaplic); 166 + $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where senha = '".md5($_SESSION["senha"])."' and login = '$usuario' and ativo = 1",$locaplic);
167 if(count($dados) > 0){ 167 if(count($dados) > 0){
168 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET senha='".md5($novaSenha)."' WHERE login = '$usuario'"); 168 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET senha='".md5($novaSenha)."' WHERE login = '$usuario'");
169 $_SESSION["senha"] = $novaSenha; 169 $_SESSION["senha"] = $novaSenha;
170 $to = $dados[0]["email"]; 170 $to = $dados[0]["email"];
171 $subject = 'nova senha i3geo'; 171 $subject = 'nova senha i3geo';
@@ -181,9 +181,9 @@ function recuperarSenha(){ @@ -181,9 +181,9 @@ function recuperarSenha(){
181 global $usuario,$novaSenha; 181 global $usuario,$novaSenha;
182 include(__DIR__."/conexao.php"); 182 include(__DIR__."/conexao.php");
183 $novaSenha = rand(9000,1000000); 183 $novaSenha = rand(9000,1000000);
184 - $dados = pegaDados("select * from ".$esquemaadmin."i3GEOadmin_usuarios where login = '$usuario' and ativo = 1",$locaplic); 184 + $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and ativo = 1",$locaplic);
185 if(count($dados) > 0){ 185 if(count($dados) > 0){
186 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET senha='$novaSenha' WHERE login = '$usuario'"); 186 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET senha='$novaSenha' WHERE login = '$usuario'");
187 $to = $dados[0]["email"]; 187 $to = $dados[0]["email"];
188 $subject = 'nova senha i3geo'; 188 $subject = 'nova senha i3geo';
189 $message = $novaSenha; 189 $message = $novaSenha;
@@ -234,10 +234,10 @@ function validaSessao(){ @@ -234,10 +234,10 @@ function validaSessao(){
234 function autenticaUsuario($usuario,$senha){ 234 function autenticaUsuario($usuario,$senha){
235 include(__DIR__."/conexao.php"); 235 include(__DIR__."/conexao.php");
236 $senhamd5 = md5($senha); 236 $senhamd5 = md5($senha);
237 - $dados = pegaDados("select * from ".$esquemaadmin."i3GEOadmin_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1",$locaplic); 237 + $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1",$locaplic);
238 if(count($dados) > 0){ 238 if(count($dados) > 0){
239 - $pa = pegaDados("select * from ".$esquemaadmin."i3geoadmin_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$locaplic);  
240 - $op = pegadados("SELECT O.codigo, PU.id_usuario FROM ".$esquemaadmin."i3geoadmin_operacoes AS O JOIN ".$esquemaadmin."i3geoadmin_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geoadmin_papelusuario AS PU ON OP.id_papel = PU.id_papel WHERE id_usuario = ".$dados[0]["id_usuario"],$locaplic); 239 + $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 $operacoes = array(); 241 $operacoes = array();
242 foreach($op as $o){ 242 foreach($op as $o){
243 $operacoes[$o["codigo"]] = true; 243 $operacoes[$o["codigo"]] = true;
admin/php/operacoes.php
@@ -77,27 +77,27 @@ switch (strtoupper($funcao)) @@ -77,27 +77,27 @@ switch (strtoupper($funcao))
77 { 77 {
78 case "ALTERAROPERACOES": 78 case "ALTERAROPERACOES":
79 $novo = alterarOperacoes(); 79 $novo = alterarOperacoes();
80 - $sql = "SELECT * from ".$esquemaadmin."i3geoadmin_operacoes WHERE id_operacao = ".$novo; 80 + $sql = "SELECT * from ".$esquemaadmin."i3geousr_operacoes WHERE id_operacao = ".$novo;
81 retornaJSON(pegaDados($sql)); 81 retornaJSON(pegaDados($sql));
82 exit; 82 exit;
83 break; 83 break;
84 case "PEGAOPERACOES": 84 case "PEGAOPERACOES":
85 - retornaJSON(pegaDados("SELECT id_operacao,codigo,descricao from ".$esquemaadmin."i3geoadmin_operacoes order by codigo")); 85 + retornaJSON(pegaDados("SELECT id_operacao,codigo,descricao from ".$esquemaadmin."i3geousr_operacoes order by codigo"));
86 exit; 86 exit;
87 break; 87 break;
88 case "PEGAPAPEISOPERACAO": 88 case "PEGAPAPEISOPERACAO":
89 - $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, OP.id_operacao FROM ".$esquemaadmin."i3geoadmin_operacoes AS O JOIN ".$esquemaadmin."i3geoadmin_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geoadmin_papeis AS P ON OP.id_papel = P.id_papel WHERE O.id_operacao = $id_operacao"); 89 + $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, OP.id_operacao FROM ".$esquemaadmin."i3geousr_operacoes AS O JOIN ".$esquemaadmin."i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geousr_papeis AS P ON OP.id_papel = P.id_papel WHERE O.id_operacao = $id_operacao");
90 $dados[] = array("id_papel"=>1,"nome"=>"admin","descricao"=>"admin"); 90 $dados[] = array("id_papel"=>1,"nome"=>"admin","descricao"=>"admin");
91 retornaJSON($dados); 91 retornaJSON($dados);
92 exit; 92 exit;
93 break; 93 break;
94 case "PEGADADOSOPERACAO": 94 case "PEGADADOSOPERACAO":
95 - retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_operacoes WHERE id_operacao = $id_operacao")); 95 + retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geousr_operacoes WHERE id_operacao = $id_operacao"));
96 exit; 96 exit;
97 break; 97 break;
98 case "ADICIONAPAPELOPERACOES": 98 case "ADICIONAPAPELOPERACOES":
99 adicionaPapelOperacoes(); 99 adicionaPapelOperacoes();
100 - $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, OP.id_operacao FROM ".$esquemaadmin."i3geoadmin_operacoes AS O JOIN ".$esquemaadmin."i3geoadmin_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geoadmin_papeis AS P ON OP.id_papel = P.id_papel WHERE O.id_operacao = $id_operacao AND P.id_papel = $id_papel"); 100 + $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, OP.id_operacao FROM ".$esquemaadmin."i3geousr_operacoes AS O JOIN ".$esquemaadmin."i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geousr_papeis AS P ON OP.id_papel = P.id_papel WHERE O.id_operacao = $id_operacao AND P.id_papel = $id_papel");
101 retornaJSON($dados); 101 retornaJSON($dados);
102 exit; 102 exit;
103 break; 103 break;
@@ -107,7 +107,7 @@ switch (strtoupper($funcao)) @@ -107,7 +107,7 @@ switch (strtoupper($funcao))
107 exit; 107 exit;
108 break; 108 break;
109 case "LISTAPAPEIS": 109 case "LISTAPAPEIS":
110 - retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_papeis order by nome")); 110 + retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geousr_papeis order by nome"));
111 exit; 111 exit;
112 break; 112 break;
113 } 113 }
@@ -122,16 +122,16 @@ function alterarOperacoes() @@ -122,16 +122,16 @@ function alterarOperacoes()
122 $descricao = utf8_encode($descricao); 122 $descricao = utf8_encode($descricao);
123 } 123 }
124 if($id_operacao != ""){ 124 if($id_operacao != ""){
125 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_operacoes SET codigo='$codigo',descricao='$descricao' WHERE id_operacao = $id_operacao"); 125 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_operacoes SET codigo='$codigo',descricao='$descricao' WHERE id_operacao = $id_operacao");
126 $retorna = $id_operacao; 126 $retorna = $id_operacao;
127 } 127 }
128 else{ 128 else{
129 $idtemp = (rand (9000,10000)) * -1; 129 $idtemp = (rand (9000,10000)) * -1;
130 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes (codigo,descricao) VALUES ('','$idtemp')");  
131 - $id = $dbh->query("SELECT id_operacao FROM ".$esquemaadmin."i3geoadmin_operacoes WHERE descricao = '$idtemp'"); 130 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes (codigo,descricao) VALUES ('','$idtemp')");
  131 + $id = $dbh->query("SELECT id_operacao FROM ".$esquemaadmin."i3geousr_operacoes WHERE descricao = '$idtemp'");
132 $id = $id->fetchAll(); 132 $id = $id->fetchAll();
133 $id = $id[0]['id_operacao']; 133 $id = $id[0]['id_operacao'];
134 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_operacoes SET descricao = '' WHERE id_operacao = $id AND descricao = '$idtemp'"); 134 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_operacoes SET descricao = '' WHERE id_operacao = $id AND descricao = '$idtemp'");
135 $retorna = $id; 135 $retorna = $id;
136 } 136 }
137 $dbhw = null; 137 $dbhw = null;
@@ -147,7 +147,7 @@ function adicionaPapelOperacoes(){ @@ -147,7 +147,7 @@ function adicionaPapelOperacoes(){
147 try 147 try
148 { 148 {
149 include(__DIR__."/conexao.php"); 149 include(__DIR__."/conexao.php");
150 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis (id_operacao,id_papel) VALUES ($id_operacao,$id_papel)"); 150 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis (id_operacao,id_papel) VALUES ($id_operacao,$id_papel)");
151 $dbhw = null; 151 $dbhw = null;
152 $dbh = null; 152 $dbh = null;
153 return "ok"; 153 return "ok";
@@ -161,7 +161,7 @@ function excluirPapelOperacao(){ @@ -161,7 +161,7 @@ function excluirPapelOperacao(){
161 try 161 try
162 { 162 {
163 include(__DIR__."/conexao.php"); 163 include(__DIR__."/conexao.php");
164 - $dbhw->query("DELETE from ".$esquemaadmin."i3geoadmin_operacoespapeis WHERE id_operacao = $id_operacao AND id_papel = $id_papel"); 164 + $dbhw->query("DELETE from ".$esquemaadmin."i3geousr_operacoespapeis WHERE id_operacao = $id_operacao AND id_papel = $id_papel");
165 $dbhw = null; 165 $dbhw = null;
166 $dbh = null; 166 $dbh = null;
167 return "ok"; 167 return "ok";
admin/php/upgradebanco46_47.php
@@ -74,11 +74,11 @@ else{ @@ -74,11 +74,11 @@ else{
74 } 74 }
75 error_reporting(E_ALL); 75 error_reporting(E_ALL);
76 $tabelas = array( 76 $tabelas = array(
77 -"CREATE TABLE ".$esquemaadmin."i3geoadmin_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)",  
78 -"CREATE TABLE ".$esquemaadmin."i3geoadmin_papelusuario (id_papel NUMERIC, id_usuario NUMERIC)",  
79 -"CREATE TABLE ".$esquemaadmin."i3geoadmin_papeis (descricao TEXT, id_papel INTEGER PRIMARY KEY, nome TEXT)",  
80 -"CREATE TABLE ".$esquemaadmin."i3geoadmin_operacoes (id_operacao INTEGER PRIMARY KEY, codigo TEXT, descricao TEXT)",  
81 -"CREATE TABLE ".$esquemaadmin."i3geoadmin_operacoespapeis (id_operacao NUMERIC, id_papel NUMERIC)" 77 +"CREATE TABLE ".$esquemaadmin."i3geousr_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)",
  78 +"CREATE TABLE ".$esquemaadmin."i3geousr_papelusuario (id_papel NUMERIC, id_usuario NUMERIC)",
  79 +"CREATE TABLE ".$esquemaadmin."i3geousr_papeis (descricao TEXT, id_papel INTEGER PRIMARY KEY, nome TEXT)",
  80 +"CREATE TABLE ".$esquemaadmin."i3geousr_operacoes (id_operacao INTEGER PRIMARY KEY, codigo TEXT, descricao TEXT)",
  81 +"CREATE TABLE ".$esquemaadmin."i3geousr_operacoespapeis (id_operacao NUMERIC, id_papel NUMERIC)"
82 ); 82 );
83 foreach($tabelas as $tabela) 83 foreach($tabelas as $tabela)
84 { 84 {
@@ -103,77 +103,77 @@ foreach($tabelas as $tabela) @@ -103,77 +103,77 @@ foreach($tabelas as $tabela)
103 echo "Tabelas:\n"; 103 echo "Tabelas:\n";
104 var_dump($tabelas); 104 var_dump($tabelas);
105 echo "Inserindo os registros default\n"; 105 echo "Inserindo os registros default\n";
106 -$teste = lista("select * from ".$esquemaadmin."i3geoadmin_papeis","id_papel"); 106 +$teste = lista("select * from ".$esquemaadmin."i3geousr_papeis","id_papel");
107 if(!in_array($teste,1)) 107 if(!in_array($teste,1))
108 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem executar qualquer tarefa, inclusive cadastrar novos administradores',1,'admin')"); 108 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem executar qualquer tarefa, inclusive cadastrar novos administradores',1,'admin')");
109 if(!in_array($teste,2)) 109 if(!in_array($teste,2))
110 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas',2,'editores')"); 110 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas',2,'editores')");
111 if(!in_array($teste,3)) 111 if(!in_array($teste,3))
112 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')"); 112 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')");
113 if(!in_array($teste,4)) 113 if(!in_array($teste,4))
114 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')"); 114 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')");
115 115
116 -$teste = lista("select * from ".$esquemaadmin."i3geoadmin_usuarios","id_usuario"); 116 +$teste = lista("select * from ".$esquemaadmin."i3geousr_usuarios","id_usuario");
117 if(!in_array($teste,1)) 117 if(!in_array($teste,1))
118 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_usuarios VALUES(1,'','',1,'admin','admin','admin')"); 118 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_usuarios VALUES(1,'','',1,'admin','admin','admin')");
119 119
120 -$teste = lista("select * from ".$esquemaadmin."i3geoadmin_papelusuario","id_usuario","id_papel"); 120 +$teste = lista("select * from ".$esquemaadmin."i3geousr_papelusuario","id_usuario","id_papel");
121 if(!in_array($teste,"1-1")) 121 if(!in_array($teste,"1-1"))
122 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papelusuario VALUES(1,1)"); 122 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papelusuario VALUES(1,1)");
123 123
124 -$teste = lista("select * from ".$esquemaadmin."i3geoadmin_operacoes","id_operacao"); 124 +$teste = lista("select * from ".$esquemaadmin."i3geousr_operacoes","id_operacao");
125 if(!in_array($teste,1)) 125 if(!in_array($teste,1))
126 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(1,'admin/html/editormapfile','editor de mapfiles do sistema de administracao')"); 126 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(1,'admin/html/editormapfile','editor de mapfiles do sistema de administracao')");
127 if(!in_array($teste,2)) 127 if(!in_array($teste,2))
128 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(2,'admin/html/operacoes','abre o editor de operacoes')"); 128 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(2,'admin/html/operacoes','abre o editor de operacoes')");
129 if(!in_array($teste,3)) 129 if(!in_array($teste,3))
130 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(3,'teste/','teste')"); 130 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(3,'teste/','teste')");
131 if(!in_array($teste,4)) 131 if(!in_array($teste,4))
132 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(4,'admin/html/arvore','edicao da arvore do catalogo de temas')"); 132 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(4,'admin/html/arvore','edicao da arvore do catalogo de temas')");
133 if(!in_array($teste,5)) 133 if(!in_array($teste,5))
134 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(5,'admin/html/menus','edicao da lista de menus')"); 134 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(5,'admin/html/menus','edicao da lista de menus')");
135 if(!in_array($teste,6)) 135 if(!in_array($teste,6))
136 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(6,'admin/html/ogcws','edicao das preferencias do servico WMS')"); 136 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(6,'admin/html/ogcws','edicao das preferencias do servico WMS')");
137 if(!in_array($teste,7)) 137 if(!in_array($teste,7))
138 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(7,'admin/html/atlas','edicao de atlas')"); 138 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(7,'admin/html/atlas','edicao de atlas')");
139 if(!in_array($teste,8)) 139 if(!in_array($teste,8))
140 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(8,'admin/html/identifica','lista de sistemas incluidos na ferramenta de identificacao')"); 140 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(8,'admin/html/identifica','lista de sistemas incluidos na ferramenta de identificacao')");
141 if(!in_array($teste,9)) 141 if(!in_array($teste,9))
142 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(9,'admin/html/incluimap','adapta mapfiles antigos para versoes novas do Mapserver')"); 142 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(9,'admin/html/incluimap','adapta mapfiles antigos para versoes novas do Mapserver')");
143 if(!in_array($teste,10)) 143 if(!in_array($teste,10))
144 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(10,'admin/html/mapas','lista de links para mapas')"); 144 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(10,'admin/html/mapas','lista de links para mapas')");
145 if(!in_array($teste,11)) 145 if(!in_array($teste,11))
146 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(11,'admin/html/perfis','lista controlada de perfis')"); 146 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(11,'admin/html/perfis','lista controlada de perfis')");
147 if(!in_array($teste,12)) 147 if(!in_array($teste,12))
148 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(12,'admin/html/sistemas','lista de sistemas complementares que sao mostrados no catalogo')"); 148 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(12,'admin/html/sistemas','lista de sistemas complementares que sao mostrados no catalogo')");
149 if(!in_array($teste,13)) 149 if(!in_array($teste,13))
150 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(13,'admin/html/subirshapefile','upload de shapefile para uma pasta especifica no servidor')"); 150 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(13,'admin/html/subirshapefile','upload de shapefile para uma pasta especifica no servidor')");
151 if(!in_array($teste,14)) 151 if(!in_array($teste,14))
152 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(14,'admin/html/tags','edicao da lista controlada de tags')"); 152 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(14,'admin/html/tags','edicao da lista controlada de tags')");
153 if(!in_array($teste,15)) 153 if(!in_array($teste,15))
154 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(15,'admin/html/webservices','cadastro de links para webservices')"); 154 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(15,'admin/html/webservices','cadastro de links para webservices')");
155 if(!in_array($teste,16)) 155 if(!in_array($teste,16))
156 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoes VALUES(16,'admin/php/editortexto','editor de texto para mapfiles')"); 156 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(16,'admin/php/editortexto','editor de texto para mapfiles')");
157 157
158 -$teste = lista("select * from ".$esquemaadmin."i3geoadmin_operacoes","id_operacao","id_papel"); 158 +$teste = lista("select * from ".$esquemaadmin."i3geousr_operacoes","id_operacao","id_papel");
159 if(!in_array($teste,'1-2')) 159 if(!in_array($teste,'1-2'))
160 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(1,2)"); 160 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,2)");
161 if(!in_array($teste,'1-3')) 161 if(!in_array($teste,'1-3'))
162 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(1,3)"); 162 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,3)");
163 if(!in_array($teste,'4-3')) 163 if(!in_array($teste,'4-3'))
164 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(4,3)"); 164 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(4,3)");
165 if(!in_array($teste,'5-3')) 165 if(!in_array($teste,'5-3'))
166 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(5,3)"); 166 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(5,3)");
167 if(!in_array($teste,'7-3')) 167 if(!in_array($teste,'7-3'))
168 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(7,3)"); 168 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(7,3)");
169 if(!in_array($teste,'10-3')) 169 if(!in_array($teste,'10-3'))
170 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(10,3)"); 170 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(10,3)");
171 if(!in_array($teste,'13-2')) 171 if(!in_array($teste,'13-2'))
172 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(13,2)"); 172 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(13,2)");
173 if(!in_array($teste,'13-4')) 173 if(!in_array($teste,'13-4'))
174 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(13,4)"); 174 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(13,4)");
175 if(!in_array($teste,'15-3')) 175 if(!in_array($teste,'15-3'))
176 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_operacoespapeis VALUES(15,3)"); 176 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(15,3)");
177 177
178 echo "Feito!"; 178 echo "Feito!";
179 function lista($sql,$coluna,$coluna1=""){ 179 function lista($sql,$coluna,$coluna1=""){
admin/php/usuarios.php
@@ -25,7 +25,7 @@ Este programa &amp;eacute; distribu&amp;iacute;do na expectativa de que seja &amp;uacute;til @@ -25,7 +25,7 @@ Este programa &amp;eacute; distribu&amp;iacute;do na expectativa de que seja &amp;uacute;til
25 por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita 25 por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
26 de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA. 26 de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
27 Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes. 27 Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
28 -Voc&ecirc; deve ter recebido uma cpia da Licen&ccedil;a P&uacute;blica Geral do 28 +Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
29 GNU junto com este programa; se n&atilde;o, escreva para a 29 GNU junto com este programa; se n&atilde;o, escreva para a
30 Free Software Foundation, Inc., no endere&ccedil;o 30 Free Software Foundation, Inc., no endere&ccedil;o
31 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. 31 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
@@ -80,25 +80,25 @@ switch (strtoupper($funcao)) @@ -80,25 +80,25 @@ switch (strtoupper($funcao))
80 retornaJSON(array()); 80 retornaJSON(array());
81 exit; 81 exit;
82 } 82 }
83 - $sql = "SELECT id_usuario,ativo,data_cadastro,email,login,nome_usuario from ".$esquemaadmin."i3geoadmin_usuarios WHERE id_usuario = ".$novo; 83 + $sql = "SELECT id_usuario,ativo,data_cadastro,email,login,nome_usuario from ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = ".$novo;
84 retornaJSON(pegaDados($sql)); 84 retornaJSON(pegaDados($sql));
85 exit; 85 exit;
86 break; 86 break;
87 case "PEGAUSUARIOS": 87 case "PEGAUSUARIOS":
88 - retornaJSON(pegaDados("SELECT id_usuario,ativo,data_cadastro,email,login,nome_usuario from ".$esquemaadmin."i3geoadmin_usuarios order by nome_usuario")); 88 + retornaJSON(pegaDados("SELECT id_usuario,ativo,data_cadastro,email,login,nome_usuario from ".$esquemaadmin."i3geousr_usuarios order by nome_usuario"));
89 exit; 89 exit;
90 break; 90 break;
91 case "PEGAPAPEISUSUARIO": 91 case "PEGAPAPEISUSUARIO":
92 - $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, UP.id_usuario FROM ".$esquemaadmin."i3geoadmin_usuarios AS U JOIN ".$esquemaadmin."i3geoadmin_papelusuario AS UP ON U.id_usuario = UP.id_usuario JOIN ".$esquemaadmin."i3geoadmin_papeis AS P ON UP.id_papel = P.id_papel WHERE U.id_usuario = $id_usuario"); 92 + $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, UP.id_usuario FROM ".$esquemaadmin."i3geousr_usuarios AS U JOIN ".$esquemaadmin."i3geousr_papelusuario AS UP ON U.id_usuario = UP.id_usuario JOIN ".$esquemaadmin."i3geousr_papeis AS P ON UP.id_papel = P.id_papel WHERE U.id_usuario = $id_usuario");
93 retornaJSON($dados); 93 retornaJSON($dados);
94 exit; 94 exit;
95 break; 95 break;
96 case "PEGADADOSUSUARIO": 96 case "PEGADADOSUSUARIO":
97 - retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_usuarios WHERE id_usuario = $id_usuario")); 97 + retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = $id_usuario"));
98 exit; 98 exit;
99 break; 99 break;
100 case "EXCLUIRUSUARIO": 100 case "EXCLUIRUSUARIO":
101 - $tabela = "i3geoadmin_usuarios"; 101 + $tabela = "i3geousr_usuarios";
102 $id = $id_usuario; 102 $id = $id_usuario;
103 $f = verificaFilhos(); 103 $f = verificaFilhos();
104 if(!$f){ 104 if(!$f){
@@ -111,7 +111,7 @@ switch (strtoupper($funcao)) @@ -111,7 +111,7 @@ switch (strtoupper($funcao))
111 break; 111 break;
112 case "ADICIONAPAPELUSUARIO": 112 case "ADICIONAPAPELUSUARIO":
113 adicionaPapelUsuario(); 113 adicionaPapelUsuario();
114 - $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, UP.id_usuario FROM ".$esquemaadmin."i3geoadmin_usuarios AS U JOIN ".$esquemaadmin."i3geoadmin_papelusuario AS UP ON U.id_usuario = UP.id_usuario JOIN ".$esquemaadmin."i3geoadmin_papeis AS P ON UP.id_papel = P.id_papel WHERE U.id_usuario = $id_usuario"); 114 + $dados = pegaDados("SELECT P.id_papel, P.nome, P.descricao, UP.id_usuario FROM ".$esquemaadmin."i3geousr_usuarios AS U JOIN ".$esquemaadmin."i3geousr_papelusuario AS UP ON U.id_usuario = UP.id_usuario JOIN ".$esquemaadmin."i3geousr_papeis AS P ON UP.id_papel = P.id_papel WHERE U.id_usuario = $id_usuario");
115 retornaJSON($dados); 115 retornaJSON($dados);
116 exit; 116 exit;
117 break; 117 break;
@@ -119,7 +119,7 @@ switch (strtoupper($funcao)) @@ -119,7 +119,7 @@ switch (strtoupper($funcao))
119 retornaJSON(excluirPapelUsuario()); 119 retornaJSON(excluirPapelUsuario());
120 break; 120 break;
121 case "LISTAPAPEIS": 121 case "LISTAPAPEIS":
122 - retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_papeis order by nome")); 122 + retornaJSON(pegaDados("SELECT * from ".$esquemaadmin."i3geousr_papeis order by nome"));
123 exit; 123 exit;
124 break; 124 break;
125 case "ENVIARSENHAEMAIL": 125 case "ENVIARSENHAEMAIL":
@@ -132,10 +132,10 @@ function enviarSenhaEmail(){ @@ -132,10 +132,10 @@ function enviarSenhaEmail(){
132 global $id_usuario; 132 global $id_usuario;
133 include(__DIR__."/conexao.php"); 133 include(__DIR__."/conexao.php");
134 $novaSenha = rand(9000,1000000); 134 $novaSenha = rand(9000,1000000);
135 - $dados = pegaDados("select * from ".$esquemaadmin."i3GEOadmin_usuarios where id_usuario = $id_usuario and ativo = 1"); 135 + $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where id_usuario = $id_usuario and ativo = 1");
136 if(count($dados) > 0){ 136 if(count($dados) > 0){
137 $senha = md5($novaSenha); 137 $senha = md5($novaSenha);
138 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET senha='$senha' WHERE id_usuario = $id_usuario"); 138 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET senha='$senha' WHERE id_usuario = $id_usuario");
139 $to = $dados[0]["email"]; 139 $to = $dados[0]["email"];
140 $subject = 'senha i3geo'; 140 $subject = 'senha i3geo';
141 $message = $novaSenha; 141 $message = $novaSenha;
@@ -157,17 +157,17 @@ function alterarUsuarios() @@ -157,17 +157,17 @@ function alterarUsuarios()
157 } 157 }
158 if($id_usuario != ""){ 158 if($id_usuario != ""){
159 //verifica uniciade de login 159 //verifica uniciade de login
160 - $dados = pegaDados("select login from ".$esquemaadmin."i3GEOadmin_usuarios where login = '$login'"); 160 + $dados = pegaDados("select login from ".$esquemaadmin."i3geousr_usuarios where login = '$login'");
161 if(count($dados) > 0){ 161 if(count($dados) > 0){
162 $retorna = false; 162 $retorna = false;
163 } 163 }
164 //se a senha foi enviada, ela sera trocada 164 //se a senha foi enviada, ela sera trocada
165 if($senha != ""){ 165 if($senha != ""){
166 $senha = md5($senha); 166 $senha = md5($senha);
167 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET senha='$senha',nome_usuario='$nome_usuario',login='$login',email='$email',ativo=$ativo,data_cadastro='$data_cadastro' WHERE id_usuario = $id_usuario"); 167 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET senha='$senha',nome_usuario='$nome_usuario',login='$login',email='$email',ativo=$ativo,data_cadastro='$data_cadastro' WHERE id_usuario = $id_usuario");
168 } 168 }
169 else{ 169 else{
170 - $dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET nome_usuario='$nome_usuario',login='$login',email='$email',ativo=$ativo,data_cadastro='$data_cadastro' WHERE id_usuario = $id_usuario"); 170 + $dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET nome_usuario='$nome_usuario',login='$login',email='$email',ativo=$ativo,data_cadastro='$data_cadastro' WHERE id_usuario = $id_usuario");
171 } 171 }
172 $retorna = $id_usuario; 172 $retorna = $id_usuario;
173 } 173 }
@@ -176,11 +176,11 @@ function alterarUsuarios() @@ -176,11 +176,11 @@ function alterarUsuarios()
176 if($senha == ""){ 176 if($senha == ""){
177 $senha = md5($idtemp); 177 $senha = md5($idtemp);
178 } 178 }
179 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_usuarios (senha,nome_usuario,ativo) VALUES ('$senha','$idtemp',0)");  
180 - $id = $dbh->query("SELECT id_usuario FROM ".$esquemaadmin."i3geoadmin_usuarios WHERE nome_usuario = '$idtemp'"); 179 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_usuarios (senha,nome_usuario,ativo) VALUES ('$senha','$idtemp',0)");
  180 + $id = $dbh->query("SELECT id_usuario FROM ".$esquemaadmin."i3geousr_usuarios WHERE nome_usuario = '$idtemp'");
181 $id = $id->fetchAll(); 181 $id = $id->fetchAll();
182 $id = $id[0]['id_usuario']; 182 $id = $id[0]['id_usuario'];
183 - //$dbhw->query("UPDATE ".$esquemaadmin."i3geoadmin_usuarios SET nome_usuario = '' WHERE id_usuario = $id AND nome_usuario = '$idtemp'"); 183 + //$dbhw->query("UPDATE ".$esquemaadmin."i3geousr_usuarios SET nome_usuario = '' WHERE id_usuario = $id AND nome_usuario = '$idtemp'");
184 $retorna = $id; 184 $retorna = $id;
185 } 185 }
186 $dbhw = null; 186 $dbhw = null;
@@ -196,7 +196,7 @@ function adicionaPapelUsuario(){ @@ -196,7 +196,7 @@ function adicionaPapelUsuario(){
196 try 196 try
197 { 197 {
198 include(__DIR__."/conexao.php"); 198 include(__DIR__."/conexao.php");
199 - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geoadmin_papelusuario (id_usuario,id_papel) VALUES ($id_usuario,$id_papel)"); 199 + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papelusuario (id_usuario,id_papel) VALUES ($id_usuario,$id_papel)");
200 $dbhw = null; 200 $dbhw = null;
201 $dbh = null; 201 $dbh = null;
202 return "ok"; 202 return "ok";
@@ -211,8 +211,8 @@ function excluirUsuario() @@ -211,8 +211,8 @@ function excluirUsuario()
211 try 211 try
212 { 212 {
213 include(__DIR__."/conexao.php"); 213 include(__DIR__."/conexao.php");
214 - //echo "DELETE from ".$esquemaadmin."i3geoadmin_usuarios WHERE id_usuario = $id_usuario";exit;  
215 - $dbhw->query("DELETE FROM ".$esquemaadmin."i3geoadmin_usuarios WHERE id_usuario = $id_usuario "); 214 + //echo "DELETE from ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = $id_usuario";exit;
  215 + $dbhw->query("DELETE FROM ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = $id_usuario ");
216 $dbhw = null; 216 $dbhw = null;
217 $dbh = null; 217 $dbh = null;
218 return "ok"; 218 return "ok";
@@ -228,8 +228,8 @@ function excluirPapelUsuario() @@ -228,8 +228,8 @@ function excluirPapelUsuario()
228 try 228 try
229 { 229 {
230 include(__DIR__."/conexao.php"); 230 include(__DIR__."/conexao.php");
231 - //echo "DELETE from ".$esquemaadmin."i3geoadmin_usuarios WHERE id_usuario = $id_usuario";exit;  
232 - $dbhw->query("DELETE FROM ".$esquemaadmin."i3geoadmin_papelusuario WHERE id_usuario = $id_usuario AND id_papel = $id_papel "); 231 + //echo "DELETE from ".$esquemaadmin."i3geousr_usuarios WHERE id_usuario = $id_usuario";exit;
  232 + $dbhw->query("DELETE FROM ".$esquemaadmin."i3geousr_papelusuario WHERE id_usuario = $id_usuario AND id_papel = $id_papel ");
233 $dbhw = null; 233 $dbhw = null;
234 $dbh = null; 234 $dbh = null;
235 return "ok"; 235 return "ok";
admin/sql/cadastrodeusuarios.sql 0 → 100644
@@ -0,0 +1,99 @@ @@ -0,0 +1,99 @@
  1 +
  2 +/* drop tables */
  3 +
  4 +drop table i3geousr_grupousuario;
  5 +drop table i3geousr_grupos;
  6 +drop table i3geousr_operacoespapeis;
  7 +drop table i3geousr_operacoes;
  8 +drop table i3geousr_papelusuario;
  9 +drop table i3geousr_papeis;
  10 +drop table i3geousr_usuarios;
  11 +
  12 +
  13 +
  14 +
  15 +/* create tables */
  16 +
  17 +-- grupos de usuários
  18 +create table i3geousr_grupos
  19 +(
  20 + -- identificador único do grupo
  21 + id_grupo integer not null unique primary key autoincrement,
  22 + -- nome do grupo
  23 + nome text,
  24 + -- descricao do grupo
  25 + descricao text
  26 +);
  27 +
  28 +
  29 +-- cadastro de usuários
  30 +create table i3geousr_usuarios
  31 +(
  32 + id_usuario integer not null unique primary key autoincrement,
  33 + -- 0 ou 1 indicando se o usuário está ativo ou não
  34 + ativo numeric not null,
  35 + -- data do cadastro do usuário
  36 + data_cadastro text,
  37 + email text,
  38 + -- login do usuário
  39 + login text not null,
  40 + -- nome real do usuário
  41 + nome_usuario text,
  42 + senha text not null
  43 +);
  44 +
  45 +
  46 +create table i3geousr_grupousuario
  47 +(
  48 + id_usuario integer not null,
  49 + -- identificador único do grupo
  50 + id_grupo integer not null,
  51 + foreign key (id_usuario)
  52 + references i3geousr_usuarios (id_usuario),
  53 + foreign key (id_grupo)
  54 + references i3geousr_grupos (id_grupo)
  55 +);
  56 +
  57 +
  58 +-- cadastro de operações do sistema
  59 +create table i3geousr_operacoes
  60 +(
  61 + id_operacao integer not null unique primary key autoincrement,
  62 + -- código da operação
  63 + codigo text,
  64 + descricao text
  65 +);
  66 +
  67 +
  68 +-- cadastro de papéis que permitem definir as operações
  69 +create table i3geousr_papeis
  70 +(
  71 + id_papel integer not null unique,
  72 + nome text not null unique,
  73 + descricao text
  74 +);
  75 +
  76 +
  77 +create table i3geousr_operacoespapeis
  78 +(
  79 + id_operacao integer not null,
  80 + id_papel integer not null,
  81 + foreign key (id_operacao)
  82 + references i3geousr_operacoes (id_operacao),
  83 + foreign key (id_papel)
  84 + references i3geousr_papeis (id_papel)
  85 +);
  86 +
  87 +
  88 +create table i3geousr_papelusuario
  89 +(
  90 + id_usuario integer not null,
  91 + id_papel integer not null,
  92 + foreign key (id_papel)
  93 + references i3geousr_papeis (id_papel),
  94 + foreign key (id_usuario)
  95 + references i3geousr_usuarios (id_usuario)
  96 +);
  97 +
  98 +
  99 +
admin/sql/usuarios_basededados.sql 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +-- i3geousr_usuarios
  2 +INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('1', '1', '', '', 'admin', 'administrador do i3geo', 'admin');
  3 +INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('2', '1', '', '', 'editor', 'teste de editor', 'editor');
  4 +INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('3', '1', '', '', 'publicador', 'teste de publicador', 'publicador');
  5 +INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('4', '1', '', '', 'editorgeo', 'teste de editor geo', 'editorgeo');
  6 +
  7 +
  8 +-- i3geousr_operacoes
  9 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('1', 'admin/html/editormapfile', 'editor de mapfiles do sistema de administracao');
  10 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('2', 'admin/html/operacoes', 'abre o editor de operacoes');
  11 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('3', 'teste/', 'teste');
  12 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('4', 'admin/html/arvore', 'edicao da arvore do catalogo de temas');
  13 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('5', 'admin/html/menus', 'edicao da lista de menus');
  14 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('6', 'admin/html/ogcws', 'edicao das preferencias do servico WMS');
  15 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('7', 'admin/html/atlas', 'edicao de atlas');
  16 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('8', 'admin/html/identifica', 'lista de sistemas incluidos na ferramenta de identificacao');
  17 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('9', 'admin/html/incluimap', 'adapta mapfiles antigos para versoes novas do Mapserver');
  18 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('10', 'admin/html/mapas', 'lista de links para mapas');
  19 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('11', 'admin/html/perfis', 'lista controlada de perfis');
  20 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('12', 'admin/html/sistemas', 'lista de sistemas complementares adicionados ao catalogo de camadas');
  21 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('13', 'admin/html/subirshapefile', 'upload de shapefile para uma pasta específica no servidor');
  22 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('14', 'admin/html/tags', 'lista controlada de tags');
  23 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('15', 'admin/html/webservices', 'cadastro de links para webservices');
  24 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('16', 'admin/php/editortexto', 'editor de textos para edicao de mapfiles');
  25 +INSERT INTO i3geousr_operacoes (id_operacao, codigo, descricao) VALUES ('17', 'admin/html/usuarios', 'cadastro de usuarios');
  26 +
  27 +
  28 +-- i3geousr_operacoespapeis
  29 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('16', '2');
  30 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('1', '2');
  31 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('1', '3');
  32 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('4', '3');
  33 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('5', '3');
  34 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('7', '3');
  35 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('10', '3');
  36 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('13', '2');
  37 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('13', '4');
  38 +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('15', '3');
  39 +
  40 +
  41 +-- i3geousr_papeis
  42 +INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('1', 'admin', 'Podem executar qualquer tarefa, inclusive cadastrar novos administradores');
  43 +INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('2', 'editores', 'Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas');
  44 +INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('3', 'publicadores', 'Podem alterar a arvore do catalogo de temas e dos atlas');
  45 +INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('4', 'editoresgeo', 'Podem editar dados geograficos');
  46 +
  47 +
  48 +-- i3geousr_papelusuario
  49 +INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('2', '2');
  50 +INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('3', '3');
  51 +INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('4', '4');
  52 +INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('1', '1');
  53 +
  54 +
documentacao/diagramas/cadastrodeusuarios.erm
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 </page_setting> 11 </page_setting>
12 <category_index>0</category_index> 12 <category_index>0</category_index>
13 <zoom>1.0</zoom> 13 <zoom>1.0</zoom>
14 - <x>0</x> 14 + <x>7</x>
15 <y>0</y> 15 <y>0</y>
16 <default_color> 16 <default_color>
17 <r>230</r> 17 <r>230</r>
@@ -40,14 +40,14 @@ @@ -40,14 +40,14 @@
40 <use_bezier_curve>false</use_bezier_curve> 40 <use_bezier_curve>false</use_bezier_curve>
41 <suspend_validator>false</suspend_validator> 41 <suspend_validator>false</suspend_validator>
42 <export_setting> 42 <export_setting>
43 - <category_name_to_export></category_name_to_export>  
44 - <ddl_output></ddl_output> 43 + <category_name_to_export>All</category_name_to_export>
  44 + <ddl_output>/var/www/i3geo/admin/sql/cadastrodeusuarios.sql</ddl_output>
45 <excel_output></excel_output> 45 <excel_output></excel_output>
46 <excel_template></excel_template> 46 <excel_template></excel_template>
47 <image_output></image_output> 47 <image_output></image_output>
48 <put_diagram_on_excel>false</put_diagram_on_excel> 48 <put_diagram_on_excel>false</put_diagram_on_excel>
49 <use_logical_name_as_sheet>false</use_logical_name_as_sheet> 49 <use_logical_name_as_sheet>false</use_logical_name_as_sheet>
50 - <open_after_saved>false</open_after_saved> 50 + <open_after_saved>true</open_after_saved>
51 <create_comment>true</create_comment> 51 <create_comment>true</create_comment>
52 <create_foreignKey>true</create_foreignKey> 52 <create_foreignKey>true</create_foreignKey>
53 <create_index>true</create_index> 53 <create_index>true</create_index>
@@ -77,8 +77,8 @@ @@ -77,8 +77,8 @@
77 <with_hibernate>false</with_hibernate> 77 <with_hibernate>false</with_hibernate>
78 </export_java_setting> 78 </export_java_setting>
79 <export_testdata_setting> 79 <export_testdata_setting>
80 - <file_encoding></file_encoding>  
81 - <file_path></file_path> 80 + <file_encoding>UTF-8</file_encoding>
  81 + <file_path>/var/www/i3geo/admin/sql</file_path>
82 <format>0</format> 82 <format>0</format>
83 </export_testdata_setting> 83 </export_testdata_setting>
84 </export_setting> 84 </export_setting>
@@ -110,7 +110,7 @@ @@ -110,7 +110,7 @@
110 </connections> 110 </connections>
111 <display>false</display> 111 <display>false</display>
112 <creation_date>2012-07-19 01:51:14</creation_date> 112 <creation_date>2012-07-19 01:51:14</creation_date>
113 - <updated_date>2012-07-19 10:09:09</updated_date> 113 + <updated_date>2012-07-30 22:24:51</updated_date>
114 <model_property> 114 <model_property>
115 <name>Project Name</name> 115 <name>Project Name</name>
116 <value></value> 116 <value></value>
@@ -216,13 +216,39 @@ @@ -216,13 +216,39 @@
216 <array_dimension>null</array_dimension> 216 <array_dimension>null</array_dimension>
217 <unsigned>false</unsigned> 217 <unsigned>false</unsigned>
218 <args></args> 218 <args></args>
  219 + <description>Descricao do grupo</description>
  220 + <logical_name>descricao</logical_name>
  221 + <physical_name>descricao</physical_name>
  222 + <type>text</type>
  223 + </word>
  224 + <word>
  225 + <id>6</id>
  226 + <length>null</length>
  227 + <decimal>null</decimal>
  228 + <array>false</array>
  229 + <array_dimension>null</array_dimension>
  230 + <unsigned>false</unsigned>
  231 + <args></args>
219 <description></description> 232 <description></description>
220 <logical_name>email</logical_name> 233 <logical_name>email</logical_name>
221 <physical_name>email</physical_name> 234 <physical_name>email</physical_name>
222 <type>text</type> 235 <type>text</type>
223 </word> 236 </word>
224 <word> 237 <word>
225 - <id>6</id> 238 + <id>7</id>
  239 + <length>null</length>
  240 + <decimal>null</decimal>
  241 + <array>false</array>
  242 + <array_dimension>null</array_dimension>
  243 + <unsigned>false</unsigned>
  244 + <args></args>
  245 + <description>identificador único do grupo</description>
  246 + <logical_name>id_grupo</logical_name>
  247 + <physical_name>id_grupo</physical_name>
  248 + <type>integer</type>
  249 + </word>
  250 + <word>
  251 + <id>8</id>
226 <length>null</length> 252 <length>null</length>
227 <decimal>null</decimal> 253 <decimal>null</decimal>
228 <array>false</array> 254 <array>false</array>
@@ -235,7 +261,7 @@ @@ -235,7 +261,7 @@
235 <type>integer</type> 261 <type>integer</type>
236 </word> 262 </word>
237 <word> 263 <word>
238 - <id>7</id> 264 + <id>9</id>
239 <length>null</length> 265 <length>null</length>
240 <decimal>null</decimal> 266 <decimal>null</decimal>
241 <array>false</array> 267 <array>false</array>
@@ -248,7 +274,7 @@ @@ -248,7 +274,7 @@
248 <type>integer</type> 274 <type>integer</type>
249 </word> 275 </word>
250 <word> 276 <word>
251 - <id>8</id> 277 + <id>10</id>
252 <length>null</length> 278 <length>null</length>
253 <decimal>null</decimal> 279 <decimal>null</decimal>
254 <array>false</array> 280 <array>false</array>
@@ -261,7 +287,7 @@ @@ -261,7 +287,7 @@
261 <type>integer</type> 287 <type>integer</type>
262 </word> 288 </word>
263 <word> 289 <word>
264 - <id>9</id> 290 + <id>11</id>
265 <length>null</length> 291 <length>null</length>
266 <decimal>null</decimal> 292 <decimal>null</decimal>
267 <array>false</array> 293 <array>false</array>
@@ -274,7 +300,7 @@ @@ -274,7 +300,7 @@
274 <type>text</type> 300 <type>text</type>
275 </word> 301 </word>
276 <word> 302 <word>
277 - <id>10</id> 303 + <id>12</id>
278 <length>null</length> 304 <length>null</length>
279 <decimal>null</decimal> 305 <decimal>null</decimal>
280 <array>false</array> 306 <array>false</array>
@@ -287,7 +313,20 @@ @@ -287,7 +313,20 @@
287 <type>text</type> 313 <type>text</type>
288 </word> 314 </word>
289 <word> 315 <word>
290 - <id>11</id> 316 + <id>13</id>
  317 + <length>null</length>
  318 + <decimal>null</decimal>
  319 + <array>false</array>
  320 + <array_dimension>null</array_dimension>
  321 + <unsigned>false</unsigned>
  322 + <args></args>
  323 + <description>Nome do grupo</description>
  324 + <logical_name>nome</logical_name>
  325 + <physical_name>nome</physical_name>
  326 + <type>text</type>
  327 + </word>
  328 + <word>
  329 + <id>14</id>
291 <length>null</length> 330 <length>null</length>
292 <decimal>null</decimal> 331 <decimal>null</decimal>
293 <array>false</array> 332 <array>false</array>
@@ -300,7 +339,7 @@ @@ -300,7 +339,7 @@
300 <type>text</type> 339 <type>text</type>
301 </word> 340 </word>
302 <word> 341 <word>
303 - <id>12</id> 342 + <id>15</id>
304 <length>null</length> 343 <length>null</length>
305 <decimal>null</decimal> 344 <decimal>null</decimal>
306 <array>false</array> 345 <array>false</array>
@@ -316,66 +355,48 @@ @@ -316,66 +355,48 @@
316 <tablespace_set> 355 <tablespace_set>
317 </tablespace_set> 356 </tablespace_set>
318 <contents> 357 <contents>
319 - <table> 358 + <note>
320 <id>0</id> 359 <id>0</id>
321 - <height>86</height>  
322 - <width>237</width> 360 + <height>75</height>
  361 + <width>270</width>
  362 + <font_name>Ubuntu</font_name>
  363 + <font_size>12</font_size>
  364 + <x>35</x>
  365 + <y>18</y>
  366 + <color>
  367 + <r>230</r>
  368 + <g>230</g>
  369 + <b>250</b>
  370 + </color>
  371 + <connections>
  372 + </connections>
  373 + <text>Cadastro de usuários do i3Geo</text>
  374 + </note>
  375 + <table>
  376 + <id>1</id>
  377 + <height>191</height>
  378 + <width>213</width>
323 <font_name>Ubuntu</font_name> 379 <font_name>Ubuntu</font_name>
324 <font_size>9</font_size> 380 <font_size>9</font_size>
325 - <x>552</x>  
326 - <y>412</y> 381 + <x>234</x>
  382 + <y>127</y>
327 <color> 383 <color>
328 <r>128</r> 384 <r>128</r>
329 <g>128</g> 385 <g>128</g>
330 <b>192</b> 386 <b>192</b>
331 </color> 387 </color>
332 <connections> 388 <connections>
333 - <relation>  
334 - <id>0</id>  
335 - <source>3</source>  
336 - <target>0</target>  
337 - <child_cardinality>1..n</child_cardinality>  
338 - <parent_cardinality>1</parent_cardinality>  
339 - <reference_for_pk>true</reference_for_pk>  
340 - <name></name>  
341 - <on_delete_action>RESTRICT</on_delete_action>  
342 - <on_update_action>RESTRICT</on_update_action>  
343 - <source_xp>-1</source_xp>  
344 - <source_yp>-1</source_yp>  
345 - <target_xp>-1</target_xp>  
346 - <target_yp>-1</target_yp>  
347 - <referenced_column>null</referenced_column>  
348 - <referenced_complex_unique_key>null</referenced_complex_unique_key>  
349 - </relation>  
350 - <relation>  
351 - <id>1</id>  
352 - <source>1</source>  
353 - <target>0</target>  
354 - <child_cardinality>1..n</child_cardinality>  
355 - <parent_cardinality>1</parent_cardinality>  
356 - <reference_for_pk>true</reference_for_pk>  
357 - <name></name>  
358 - <on_delete_action>RESTRICT</on_delete_action>  
359 - <on_update_action>RESTRICT</on_update_action>  
360 - <source_xp>-1</source_xp>  
361 - <source_yp>-1</source_yp>  
362 - <target_xp>-1</target_xp>  
363 - <target_yp>-1</target_yp>  
364 - <referenced_column>null</referenced_column>  
365 - <referenced_complex_unique_key>null</referenced_complex_unique_key>  
366 - </relation>  
367 </connections> 389 </connections>
368 - <physical_name>i3geoadmin_operacoespapeis</physical_name>  
369 - <logical_name>i3geoadmin_operacoespapeis</logical_name>  
370 - <description></description> 390 + <physical_name>i3geousr_usuarios</physical_name>
  391 + <logical_name>i3geousr_usuarios</logical_name>
  392 + <description>Cadastro de usuários</description>
371 <constraint></constraint> 393 <constraint></constraint>
372 <primary_key_name></primary_key_name> 394 <primary_key_name></primary_key_name>
373 <option></option> 395 <option></option>
374 <columns> 396 <columns>
375 <normal_column> 397 <normal_column>
  398 + <word_id>10</word_id>
376 <id>0</id> 399 <id>0</id>
377 - <referenced_column>7</referenced_column>  
378 - <relation>0</relation>  
379 <description></description> 400 <description></description>
380 <unique_key_name></unique_key_name> 401 <unique_key_name></unique_key_name>
381 <logical_name></logical_name> 402 <logical_name></logical_name>
@@ -383,11 +404,11 @@ @@ -383,11 +404,11 @@
383 <type>integer</type> 404 <type>integer</type>
384 <constraint></constraint> 405 <constraint></constraint>
385 <default_value></default_value> 406 <default_value></default_value>
386 - <auto_increment>false</auto_increment>  
387 - <foreign_key>true</foreign_key> 407 + <auto_increment>true</auto_increment>
  408 + <foreign_key>false</foreign_key>
388 <not_null>true</not_null> 409 <not_null>true</not_null>
389 - <primary_key>false</primary_key>  
390 - <unique_key>false</unique_key> 410 + <primary_key>true</primary_key>
  411 + <unique_key>true</unique_key>
391 <character_set></character_set> 412 <character_set></character_set>
392 <collation></collation> 413 <collation></collation>
393 <sequence> 414 <sequence>
@@ -406,18 +427,17 @@ @@ -406,18 +427,17 @@
406 </sequence> 427 </sequence>
407 </normal_column> 428 </normal_column>
408 <normal_column> 429 <normal_column>
  430 + <word_id>0</word_id>
409 <id>1</id> 431 <id>1</id>
410 - <referenced_column>2</referenced_column>  
411 - <relation>1</relation>  
412 <description></description> 432 <description></description>
413 <unique_key_name></unique_key_name> 433 <unique_key_name></unique_key_name>
414 <logical_name></logical_name> 434 <logical_name></logical_name>
415 <physical_name></physical_name> 435 <physical_name></physical_name>
416 - <type>integer</type> 436 + <type>numeric</type>
417 <constraint></constraint> 437 <constraint></constraint>
418 <default_value></default_value> 438 <default_value></default_value>
419 <auto_increment>false</auto_increment> 439 <auto_increment>false</auto_increment>
420 - <foreign_key>true</foreign_key> 440 + <foreign_key>false</foreign_key>
421 <not_null>true</not_null> 441 <not_null>true</not_null>
422 <primary_key>false</primary_key> 442 <primary_key>false</primary_key>
423 <unique_key>false</unique_key> 443 <unique_key>false</unique_key>
@@ -438,52 +458,21 @@ @@ -438,52 +458,21 @@
438 <decimal_size>0</decimal_size> 458 <decimal_size>0</decimal_size>
439 </sequence> 459 </sequence>
440 </normal_column> 460 </normal_column>
441 - </columns>  
442 - <indexes>  
443 - </indexes>  
444 - <complex_unique_key_list>  
445 - </complex_unique_key_list>  
446 - <table_properties>  
447 - <schema></schema>  
448 - </table_properties>  
449 - </table>  
450 - <table>  
451 - <id>1</id>  
452 - <height>107</height>  
453 - <width>197</width>  
454 - <font_name>Ubuntu</font_name>  
455 - <font_size>9</font_size>  
456 - <x>251</x>  
457 - <y>523</y>  
458 - <color>  
459 - <r>128</r>  
460 - <g>128</g>  
461 - <b>192</b>  
462 - </color>  
463 - <connections>  
464 - </connections>  
465 - <physical_name>i3geoadmin_papeis</physical_name>  
466 - <logical_name>i3geoadmin_papeis</logical_name>  
467 - <description>Cadastro de papéis que permitem definir as operações</description>  
468 - <constraint></constraint>  
469 - <primary_key_name></primary_key_name>  
470 - <option></option>  
471 - <columns>  
472 <normal_column> 461 <normal_column>
473 - <word_id>7</word_id> 462 + <word_id>2</word_id>
474 <id>2</id> 463 <id>2</id>
475 <description></description> 464 <description></description>
476 <unique_key_name></unique_key_name> 465 <unique_key_name></unique_key_name>
477 <logical_name></logical_name> 466 <logical_name></logical_name>
478 <physical_name></physical_name> 467 <physical_name></physical_name>
479 - <type>integer</type> 468 + <type>text</type>
480 <constraint></constraint> 469 <constraint></constraint>
481 <default_value></default_value> 470 <default_value></default_value>
482 <auto_increment>false</auto_increment> 471 <auto_increment>false</auto_increment>
483 <foreign_key>false</foreign_key> 472 <foreign_key>false</foreign_key>
484 - <not_null>true</not_null>  
485 - <primary_key>true</primary_key>  
486 - <unique_key>true</unique_key> 473 + <not_null>false</not_null>
  474 + <primary_key>false</primary_key>
  475 + <unique_key>false</unique_key>
487 <character_set></character_set> 476 <character_set></character_set>
488 <collation></collation> 477 <collation></collation>
489 <sequence> 478 <sequence>
@@ -502,7 +491,7 @@ @@ -502,7 +491,7 @@
502 </sequence> 491 </sequence>
503 </normal_column> 492 </normal_column>
504 <normal_column> 493 <normal_column>
505 - <word_id>10</word_id> 494 + <word_id>6</word_id>
506 <id>3</id> 495 <id>3</id>
507 <description></description> 496 <description></description>
508 <unique_key_name></unique_key_name> 497 <unique_key_name></unique_key_name>
@@ -513,9 +502,9 @@ @@ -513,9 +502,9 @@
513 <default_value></default_value> 502 <default_value></default_value>
514 <auto_increment>false</auto_increment> 503 <auto_increment>false</auto_increment>
515 <foreign_key>false</foreign_key> 504 <foreign_key>false</foreign_key>
516 - <not_null>true</not_null> 505 + <not_null>false</not_null>
517 <primary_key>false</primary_key> 506 <primary_key>false</primary_key>
518 - <unique_key>true</unique_key> 507 + <unique_key>false</unique_key>
519 <character_set></character_set> 508 <character_set></character_set>
520 <collation></collation> 509 <collation></collation>
521 <sequence> 510 <sequence>
@@ -534,7 +523,7 @@ @@ -534,7 +523,7 @@
534 </sequence> 523 </sequence>
535 </normal_column> 524 </normal_column>
536 <normal_column> 525 <normal_column>
537 - <word_id>3</word_id> 526 + <word_id>11</word_id>
538 <id>4</id> 527 <id>4</id>
539 <description></description> 528 <description></description>
540 <unique_key_name></unique_key_name> 529 <unique_key_name></unique_key_name>
@@ -545,6 +534,38 @@ @@ -545,6 +534,38 @@
545 <default_value></default_value> 534 <default_value></default_value>
546 <auto_increment>false</auto_increment> 535 <auto_increment>false</auto_increment>
547 <foreign_key>false</foreign_key> 536 <foreign_key>false</foreign_key>
  537 + <not_null>true</not_null>
  538 + <primary_key>false</primary_key>
  539 + <unique_key>false</unique_key>
  540 + <character_set></character_set>
  541 + <collation></collation>
  542 + <sequence>
  543 + <name></name>
  544 + <schema></schema>
  545 + <increment></increment>
  546 + <min_value></min_value>
  547 + <max_value></max_value>
  548 + <start></start>
  549 + <cache></cache>
  550 + <cycle>false</cycle>
  551 + <order>false</order>
  552 + <description></description>
  553 + <data_type></data_type>
  554 + <decimal_size>0</decimal_size>
  555 + </sequence>
  556 + </normal_column>
  557 + <normal_column>
  558 + <word_id>14</word_id>
  559 + <id>5</id>
  560 + <description></description>
  561 + <unique_key_name></unique_key_name>
  562 + <logical_name></logical_name>
  563 + <physical_name></physical_name>
  564 + <type>text</type>
  565 + <constraint></constraint>
  566 + <default_value></default_value>
  567 + <auto_increment>false</auto_increment>
  568 + <foreign_key>false</foreign_key>
548 <not_null>false</not_null> 569 <not_null>false</not_null>
549 <primary_key>false</primary_key> 570 <primary_key>false</primary_key>
550 <unique_key>false</unique_key> 571 <unique_key>false</unique_key>
@@ -565,6 +586,38 @@ @@ -565,6 +586,38 @@
565 <decimal_size>0</decimal_size> 586 <decimal_size>0</decimal_size>
566 </sequence> 587 </sequence>
567 </normal_column> 588 </normal_column>
  589 + <normal_column>
  590 + <word_id>15</word_id>
  591 + <id>6</id>
  592 + <description></description>
  593 + <unique_key_name></unique_key_name>
  594 + <logical_name></logical_name>
  595 + <physical_name></physical_name>
  596 + <type>text</type>
  597 + <constraint></constraint>
  598 + <default_value></default_value>
  599 + <auto_increment>false</auto_increment>
  600 + <foreign_key>false</foreign_key>
  601 + <not_null>true</not_null>
  602 + <primary_key>false</primary_key>
  603 + <unique_key>false</unique_key>
  604 + <character_set></character_set>
  605 + <collation></collation>
  606 + <sequence>
  607 + <name></name>
  608 + <schema></schema>
  609 + <increment></increment>
  610 + <min_value></min_value>
  611 + <max_value></max_value>
  612 + <start></start>
  613 + <cache></cache>
  614 + <cycle>false</cycle>
  615 + <order>false</order>
  616 + <description></description>
  617 + <data_type></data_type>
  618 + <decimal_size>0</decimal_size>
  619 + </sequence>
  620 + </normal_column>
568 </columns> 621 </columns>
569 <indexes> 622 <indexes>
570 </indexes> 623 </indexes>
@@ -580,8 +633,8 @@ @@ -580,8 +633,8 @@
580 <width>216</width> 633 <width>216</width>
581 <font_name>Ubuntu</font_name> 634 <font_name>Ubuntu</font_name>
582 <font_size>9</font_size> 635 <font_size>9</font_size>
583 - <x>62</x>  
584 - <y>378</y> 636 + <x>42</x>
  637 + <y>376</y>
585 <color> 638 <color>
586 <r>128</r> 639 <r>128</r>
587 <g>128</g> 640 <g>128</g>
@@ -589,8 +642,8 @@ @@ -589,8 +642,8 @@
589 </color> 642 </color>
590 <connections> 643 <connections>
591 <relation> 644 <relation>
592 - <id>2</id>  
593 - <source>5</source> 645 + <id>0</id>
  646 + <source>4</source>
594 <target>2</target> 647 <target>2</target>
595 <child_cardinality>1..n</child_cardinality> 648 <child_cardinality>1..n</child_cardinality>
596 <parent_cardinality>1</parent_cardinality> 649 <parent_cardinality>1</parent_cardinality>
@@ -606,7 +659,7 @@ @@ -606,7 +659,7 @@
606 <referenced_complex_unique_key>null</referenced_complex_unique_key> 659 <referenced_complex_unique_key>null</referenced_complex_unique_key>
607 </relation> 660 </relation>
608 <relation> 661 <relation>
609 - <id>3</id> 662 + <id>1</id>
610 <source>1</source> 663 <source>1</source>
611 <target>2</target> 664 <target>2</target>
612 <child_cardinality>1..n</child_cardinality> 665 <child_cardinality>1..n</child_cardinality>
@@ -623,17 +676,17 @@ @@ -623,17 +676,17 @@
623 <referenced_complex_unique_key>null</referenced_complex_unique_key> 676 <referenced_complex_unique_key>null</referenced_complex_unique_key>
624 </relation> 677 </relation>
625 </connections> 678 </connections>
626 - <physical_name>i3geoadmin_papelusuario</physical_name>  
627 - <logical_name>i3geoadmin_papelusuario</logical_name> 679 + <physical_name>i3geousr_papelusuario</physical_name>
  680 + <logical_name>i3geousr_papelusuario</logical_name>
628 <description></description> 681 <description></description>
629 <constraint></constraint> 682 <constraint></constraint>
630 <primary_key_name></primary_key_name> 683 <primary_key_name></primary_key_name>
631 <option></option> 684 <option></option>
632 <columns> 685 <columns>
633 <normal_column> 686 <normal_column>
634 - <id>5</id>  
635 - <referenced_column>10</referenced_column>  
636 - <relation>2</relation> 687 + <id>7</id>
  688 + <referenced_column>0</referenced_column>
  689 + <relation>1</relation>
637 <description></description> 690 <description></description>
638 <unique_key_name></unique_key_name> 691 <unique_key_name></unique_key_name>
639 <logical_name></logical_name> 692 <logical_name></logical_name>
@@ -664,9 +717,9 @@ @@ -664,9 +717,9 @@
664 </sequence> 717 </sequence>
665 </normal_column> 718 </normal_column>
666 <normal_column> 719 <normal_column>
667 - <id>6</id>  
668 - <referenced_column>2</referenced_column>  
669 - <relation>3</relation> 720 + <id>8</id>
  721 + <referenced_column>11</referenced_column>
  722 + <relation>0</relation>
670 <description></description> 723 <description></description>
671 <unique_key_name></unique_key_name> 724 <unique_key_name></unique_key_name>
672 <logical_name></logical_name> 725 <logical_name></logical_name>
@@ -707,71 +760,74 @@ @@ -707,71 +760,74 @@
707 </table> 760 </table>
708 <table> 761 <table>
709 <id>3</id> 762 <id>3</id>
710 - <height>107</height>  
711 - <width>226</width> 763 + <height>86</height>
  764 + <width>237</width>
712 <font_name>Ubuntu</font_name> 765 <font_name>Ubuntu</font_name>
713 <font_size>9</font_size> 766 <font_size>9</font_size>
714 - <x>552</x>  
715 - <y>136</y> 767 + <x>596</x>
  768 + <y>499</y>
716 <color> 769 <color>
717 <r>128</r> 770 <r>128</r>
718 <g>128</g> 771 <g>128</g>
719 <b>192</b> 772 <b>192</b>
720 </color> 773 </color>
721 <connections> 774 <connections>
722 - </connections>  
723 - <physical_name>i3geoadmin_operacoes</physical_name>  
724 - <logical_name>i3geoadmin_operacoes</logical_name>  
725 - <description>Cadastro de operações do sistema</description>  
726 - <constraint></constraint>  
727 - <primary_key_name></primary_key_name>  
728 - <option></option>  
729 - <columns>  
730 - <normal_column>  
731 - <word_id>6</word_id>  
732 - <id>7</id>  
733 - <description></description>  
734 - <unique_key_name></unique_key_name>  
735 - <logical_name></logical_name>  
736 - <physical_name></physical_name>  
737 - <type>integer</type>  
738 - <constraint></constraint>  
739 - <default_value></default_value>  
740 - <auto_increment>true</auto_increment>  
741 - <foreign_key>false</foreign_key>  
742 - <not_null>true</not_null>  
743 - <primary_key>true</primary_key>  
744 - <unique_key>true</unique_key>  
745 - <character_set></character_set>  
746 - <collation></collation>  
747 - <sequence>  
748 - <name></name>  
749 - <schema></schema>  
750 - <increment></increment>  
751 - <min_value></min_value>  
752 - <max_value></max_value>  
753 - <start></start>  
754 - <cache></cache>  
755 - <cycle>false</cycle>  
756 - <order>false</order>  
757 - <description></description>  
758 - <data_type></data_type>  
759 - <decimal_size>0</decimal_size>  
760 - </sequence>  
761 - </normal_column> 775 + <relation>
  776 + <id>2</id>
  777 + <source>6</source>
  778 + <target>3</target>
  779 + <child_cardinality>1..n</child_cardinality>
  780 + <parent_cardinality>1</parent_cardinality>
  781 + <reference_for_pk>true</reference_for_pk>
  782 + <name></name>
  783 + <on_delete_action>RESTRICT</on_delete_action>
  784 + <on_update_action>RESTRICT</on_update_action>
  785 + <source_xp>-1</source_xp>
  786 + <source_yp>-1</source_yp>
  787 + <target_xp>-1</target_xp>
  788 + <target_yp>-1</target_yp>
  789 + <referenced_column>null</referenced_column>
  790 + <referenced_complex_unique_key>null</referenced_complex_unique_key>
  791 + </relation>
  792 + <relation>
  793 + <id>3</id>
  794 + <source>4</source>
  795 + <target>3</target>
  796 + <child_cardinality>1..n</child_cardinality>
  797 + <parent_cardinality>1</parent_cardinality>
  798 + <reference_for_pk>true</reference_for_pk>
  799 + <name></name>
  800 + <on_delete_action>RESTRICT</on_delete_action>
  801 + <on_update_action>RESTRICT</on_update_action>
  802 + <source_xp>-1</source_xp>
  803 + <source_yp>-1</source_yp>
  804 + <target_xp>-1</target_xp>
  805 + <target_yp>-1</target_yp>
  806 + <referenced_column>null</referenced_column>
  807 + <referenced_complex_unique_key>null</referenced_complex_unique_key>
  808 + </relation>
  809 + </connections>
  810 + <physical_name>i3geousr_operacoespapeis</physical_name>
  811 + <logical_name>i3geousr_operacoespapeis</logical_name>
  812 + <description></description>
  813 + <constraint></constraint>
  814 + <primary_key_name></primary_key_name>
  815 + <option></option>
  816 + <columns>
762 <normal_column> 817 <normal_column>
763 - <word_id>1</word_id>  
764 - <id>8</id> 818 + <id>9</id>
  819 + <referenced_column>17</referenced_column>
  820 + <relation>2</relation>
765 <description></description> 821 <description></description>
766 <unique_key_name></unique_key_name> 822 <unique_key_name></unique_key_name>
767 <logical_name></logical_name> 823 <logical_name></logical_name>
768 <physical_name></physical_name> 824 <physical_name></physical_name>
769 - <type>text</type> 825 + <type>integer</type>
770 <constraint></constraint> 826 <constraint></constraint>
771 <default_value></default_value> 827 <default_value></default_value>
772 <auto_increment>false</auto_increment> 828 <auto_increment>false</auto_increment>
773 - <foreign_key>false</foreign_key>  
774 - <not_null>false</not_null> 829 + <foreign_key>true</foreign_key>
  830 + <not_null>true</not_null>
775 <primary_key>false</primary_key> 831 <primary_key>false</primary_key>
776 <unique_key>false</unique_key> 832 <unique_key>false</unique_key>
777 <character_set></character_set> 833 <character_set></character_set>
@@ -792,18 +848,19 @@ @@ -792,18 +848,19 @@
792 </sequence> 848 </sequence>
793 </normal_column> 849 </normal_column>
794 <normal_column> 850 <normal_column>
795 - <word_id>4</word_id>  
796 - <id>9</id> 851 + <id>10</id>
  852 + <referenced_column>11</referenced_column>
  853 + <relation>3</relation>
797 <description></description> 854 <description></description>
798 <unique_key_name></unique_key_name> 855 <unique_key_name></unique_key_name>
799 <logical_name></logical_name> 856 <logical_name></logical_name>
800 <physical_name></physical_name> 857 <physical_name></physical_name>
801 - <type>text</type> 858 + <type>integer</type>
802 <constraint></constraint> 859 <constraint></constraint>
803 <default_value></default_value> 860 <default_value></default_value>
804 <auto_increment>false</auto_increment> 861 <auto_increment>false</auto_increment>
805 - <foreign_key>false</foreign_key>  
806 - <not_null>false</not_null> 862 + <foreign_key>true</foreign_key>
  863 + <not_null>true</not_null>
807 <primary_key>false</primary_key> 864 <primary_key>false</primary_key>
808 <unique_key>false</unique_key> 865 <unique_key>false</unique_key>
809 <character_set></character_set> 866 <character_set></character_set>
@@ -832,31 +889,14 @@ @@ -832,31 +889,14 @@
832 <schema></schema> 889 <schema></schema>
833 </table_properties> 890 </table_properties>
834 </table> 891 </table>
835 - <note>  
836 - <id>4</id>  
837 - <height>75</height>  
838 - <width>270</width>  
839 - <font_name>Ubuntu</font_name>  
840 - <font_size>12</font_size>  
841 - <x>35</x>  
842 - <y>18</y>  
843 - <color>  
844 - <r>230</r>  
845 - <g>230</g>  
846 - <b>250</b>  
847 - </color>  
848 - <connections>  
849 - </connections>  
850 - <text>Cadastro de usuários do i3Geo</text>  
851 - </note>  
852 <table> 892 <table>
853 - <id>5</id>  
854 - <height>191</height>  
855 - <width>213</width> 893 + <id>4</id>
  894 + <height>107</height>
  895 + <width>197</width>
856 <font_name>Ubuntu</font_name> 896 <font_name>Ubuntu</font_name>
857 <font_size>9</font_size> 897 <font_size>9</font_size>
858 - <x>269</x>  
859 - <y>111</y> 898 + <x>251</x>
  899 + <y>523</y>
860 <color> 900 <color>
861 <r>128</r> 901 <r>128</r>
862 <g>128</g> 902 <g>128</g>
@@ -864,16 +904,16 @@ @@ -864,16 +904,16 @@
864 </color> 904 </color>
865 <connections> 905 <connections>
866 </connections> 906 </connections>
867 - <physical_name>i3geoadmin_usuarios</physical_name>  
868 - <logical_name>i3geoadmin_usuarios</logical_name>  
869 - <description>Cadastro de usuários</description> 907 + <physical_name>i3geousr_papeis</physical_name>
  908 + <logical_name>i3geousr_papeis</logical_name>
  909 + <description>Cadastro de papéis que permitem definir as operações</description>
870 <constraint></constraint> 910 <constraint></constraint>
871 <primary_key_name></primary_key_name> 911 <primary_key_name></primary_key_name>
872 <option></option> 912 <option></option>
873 <columns> 913 <columns>
874 <normal_column> 914 <normal_column>
875 - <word_id>8</word_id>  
876 - <id>10</id> 915 + <word_id>9</word_id>
  916 + <id>11</id>
877 <description></description> 917 <description></description>
878 <unique_key_name></unique_key_name> 918 <unique_key_name></unique_key_name>
879 <logical_name></logical_name> 919 <logical_name></logical_name>
@@ -881,7 +921,7 @@ @@ -881,7 +921,7 @@
881 <type>integer</type> 921 <type>integer</type>
882 <constraint></constraint> 922 <constraint></constraint>
883 <default_value></default_value> 923 <default_value></default_value>
884 - <auto_increment>true</auto_increment> 924 + <auto_increment>false</auto_increment>
885 <foreign_key>false</foreign_key> 925 <foreign_key>false</foreign_key>
886 <not_null>true</not_null> 926 <not_null>true</not_null>
887 <primary_key>true</primary_key> 927 <primary_key>true</primary_key>
@@ -904,20 +944,20 @@ @@ -904,20 +944,20 @@
904 </sequence> 944 </sequence>
905 </normal_column> 945 </normal_column>
906 <normal_column> 946 <normal_column>
907 - <word_id>0</word_id>  
908 - <id>11</id> 947 + <word_id>12</word_id>
  948 + <id>12</id>
909 <description></description> 949 <description></description>
910 <unique_key_name></unique_key_name> 950 <unique_key_name></unique_key_name>
911 <logical_name></logical_name> 951 <logical_name></logical_name>
912 <physical_name></physical_name> 952 <physical_name></physical_name>
913 - <type>numeric</type> 953 + <type>text</type>
914 <constraint></constraint> 954 <constraint></constraint>
915 <default_value></default_value> 955 <default_value></default_value>
916 <auto_increment>false</auto_increment> 956 <auto_increment>false</auto_increment>
917 <foreign_key>false</foreign_key> 957 <foreign_key>false</foreign_key>
918 <not_null>true</not_null> 958 <not_null>true</not_null>
919 <primary_key>false</primary_key> 959 <primary_key>false</primary_key>
920 - <unique_key>false</unique_key> 960 + <unique_key>true</unique_key>
921 <character_set></character_set> 961 <character_set></character_set>
922 <collation></collation> 962 <collation></collation>
923 <sequence> 963 <sequence>
@@ -936,8 +976,8 @@ @@ -936,8 +976,8 @@
936 </sequence> 976 </sequence>
937 </normal_column> 977 </normal_column>
938 <normal_column> 978 <normal_column>
939 - <word_id>2</word_id>  
940 - <id>12</id> 979 + <word_id>3</word_id>
  980 + <id>13</id>
941 <description></description> 981 <description></description>
942 <unique_key_name></unique_key_name> 982 <unique_key_name></unique_key_name>
943 <logical_name></logical_name> 983 <logical_name></logical_name>
@@ -967,9 +1007,72 @@ @@ -967,9 +1007,72 @@
967 <decimal_size>0</decimal_size> 1007 <decimal_size>0</decimal_size>
968 </sequence> 1008 </sequence>
969 </normal_column> 1009 </normal_column>
  1010 + </columns>
  1011 + <indexes>
  1012 + </indexes>
  1013 + <complex_unique_key_list>
  1014 + </complex_unique_key_list>
  1015 + <table_properties>
  1016 + <schema></schema>
  1017 + </table_properties>
  1018 + </table>
  1019 + <table>
  1020 + <id>5</id>
  1021 + <height>107</height>
  1022 + <width>203</width>
  1023 + <font_name>Ubuntu</font_name>
  1024 + <font_size>9</font_size>
  1025 + <x>502</x>
  1026 + <y>308</y>
  1027 + <color>
  1028 + <r>230</r>
  1029 + <g>230</g>
  1030 + <b>250</b>
  1031 + </color>
  1032 + <connections>
  1033 + </connections>
  1034 + <physical_name>i3geousr_grupos</physical_name>
  1035 + <logical_name>i3geousr_grupos</logical_name>
  1036 + <description>Grupos de usuários</description>
  1037 + <constraint></constraint>
  1038 + <primary_key_name></primary_key_name>
  1039 + <option></option>
  1040 + <columns>
  1041 + <normal_column>
  1042 + <word_id>7</word_id>
  1043 + <id>14</id>
  1044 + <description></description>
  1045 + <unique_key_name></unique_key_name>
  1046 + <logical_name></logical_name>
  1047 + <physical_name></physical_name>
  1048 + <type>integer</type>
  1049 + <constraint></constraint>
  1050 + <default_value></default_value>
  1051 + <auto_increment>true</auto_increment>
  1052 + <foreign_key>false</foreign_key>
  1053 + <not_null>true</not_null>
  1054 + <primary_key>true</primary_key>
  1055 + <unique_key>true</unique_key>
  1056 + <character_set></character_set>
  1057 + <collation></collation>
  1058 + <sequence>
  1059 + <name></name>
  1060 + <schema></schema>
  1061 + <increment></increment>
  1062 + <min_value></min_value>
  1063 + <max_value></max_value>
  1064 + <start></start>
  1065 + <cache></cache>
  1066 + <cycle>false</cycle>
  1067 + <order>false</order>
  1068 + <description></description>
  1069 + <data_type></data_type>
  1070 + <decimal_size>0</decimal_size>
  1071 + </sequence>
  1072 + </normal_column>
970 <normal_column> 1073 <normal_column>
971 - <word_id>5</word_id>  
972 - <id>13</id> 1074 + <word_id>13</word_id>
  1075 + <id>15</id>
973 <description></description> 1076 <description></description>
974 <unique_key_name></unique_key_name> 1077 <unique_key_name></unique_key_name>
975 <logical_name></logical_name> 1078 <logical_name></logical_name>
@@ -1000,8 +1103,8 @@ @@ -1000,8 +1103,8 @@
1000 </sequence> 1103 </sequence>
1001 </normal_column> 1104 </normal_column>
1002 <normal_column> 1105 <normal_column>
1003 - <word_id>9</word_id>  
1004 - <id>14</id> 1106 + <word_id>5</word_id>
  1107 + <id>16</id>
1005 <description></description> 1108 <description></description>
1006 <unique_key_name></unique_key_name> 1109 <unique_key_name></unique_key_name>
1007 <logical_name></logical_name> 1110 <logical_name></logical_name>
@@ -1011,7 +1114,7 @@ @@ -1011,7 +1114,7 @@
1011 <default_value></default_value> 1114 <default_value></default_value>
1012 <auto_increment>false</auto_increment> 1115 <auto_increment>false</auto_increment>
1013 <foreign_key>false</foreign_key> 1116 <foreign_key>false</foreign_key>
1014 - <not_null>true</not_null> 1117 + <not_null>false</not_null>
1015 <primary_key>false</primary_key> 1118 <primary_key>false</primary_key>
1016 <unique_key>false</unique_key> 1119 <unique_key>false</unique_key>
1017 <character_set></character_set> 1120 <character_set></character_set>
@@ -1031,21 +1134,52 @@ @@ -1031,21 +1134,52 @@
1031 <decimal_size>0</decimal_size> 1134 <decimal_size>0</decimal_size>
1032 </sequence> 1135 </sequence>
1033 </normal_column> 1136 </normal_column>
  1137 + </columns>
  1138 + <indexes>
  1139 + </indexes>
  1140 + <complex_unique_key_list>
  1141 + </complex_unique_key_list>
  1142 + <table_properties>
  1143 + <schema></schema>
  1144 + </table_properties>
  1145 + </table>
  1146 + <table>
  1147 + <id>6</id>
  1148 + <height>107</height>
  1149 + <width>226</width>
  1150 + <font_name>Ubuntu</font_name>
  1151 + <font_size>9</font_size>
  1152 + <x>782</x>
  1153 + <y>176</y>
  1154 + <color>
  1155 + <r>128</r>
  1156 + <g>128</g>
  1157 + <b>192</b>
  1158 + </color>
  1159 + <connections>
  1160 + </connections>
  1161 + <physical_name>i3geousr_operacoes</physical_name>
  1162 + <logical_name>i3geousr_operacoes</logical_name>
  1163 + <description>Cadastro de operações do sistema</description>
  1164 + <constraint></constraint>
  1165 + <primary_key_name></primary_key_name>
  1166 + <option></option>
  1167 + <columns>
1034 <normal_column> 1168 <normal_column>
1035 - <word_id>11</word_id>  
1036 - <id>15</id> 1169 + <word_id>8</word_id>
  1170 + <id>17</id>
1037 <description></description> 1171 <description></description>
1038 <unique_key_name></unique_key_name> 1172 <unique_key_name></unique_key_name>
1039 <logical_name></logical_name> 1173 <logical_name></logical_name>
1040 <physical_name></physical_name> 1174 <physical_name></physical_name>
1041 - <type>text</type> 1175 + <type>integer</type>
1042 <constraint></constraint> 1176 <constraint></constraint>
1043 <default_value></default_value> 1177 <default_value></default_value>
1044 - <auto_increment>false</auto_increment> 1178 + <auto_increment>true</auto_increment>
1045 <foreign_key>false</foreign_key> 1179 <foreign_key>false</foreign_key>
1046 - <not_null>false</not_null>  
1047 - <primary_key>false</primary_key>  
1048 - <unique_key>false</unique_key> 1180 + <not_null>true</not_null>
  1181 + <primary_key>true</primary_key>
  1182 + <unique_key>true</unique_key>
1049 <character_set></character_set> 1183 <character_set></character_set>
1050 <collation></collation> 1184 <collation></collation>
1051 <sequence> 1185 <sequence>
@@ -1064,8 +1198,8 @@ @@ -1064,8 +1198,8 @@
1064 </sequence> 1198 </sequence>
1065 </normal_column> 1199 </normal_column>
1066 <normal_column> 1200 <normal_column>
1067 - <word_id>12</word_id>  
1068 - <id>16</id> 1201 + <word_id>1</word_id>
  1202 + <id>18</id>
1069 <description></description> 1203 <description></description>
1070 <unique_key_name></unique_key_name> 1204 <unique_key_name></unique_key_name>
1071 <logical_name></logical_name> 1205 <logical_name></logical_name>
@@ -1075,7 +1209,7 @@ @@ -1075,7 +1209,7 @@
1075 <default_value></default_value> 1209 <default_value></default_value>
1076 <auto_increment>false</auto_increment> 1210 <auto_increment>false</auto_increment>
1077 <foreign_key>false</foreign_key> 1211 <foreign_key>false</foreign_key>
1078 - <not_null>true</not_null> 1212 + <not_null>false</not_null>
1079 <primary_key>false</primary_key> 1213 <primary_key>false</primary_key>
1080 <unique_key>false</unique_key> 1214 <unique_key>false</unique_key>
1081 <character_set></character_set> 1215 <character_set></character_set>
@@ -1095,31 +1229,314 @@ @@ -1095,31 +1229,314 @@
1095 <decimal_size>0</decimal_size> 1229 <decimal_size>0</decimal_size>
1096 </sequence> 1230 </sequence>
1097 </normal_column> 1231 </normal_column>
1098 - </columns>  
1099 - <indexes>  
1100 - </indexes>  
1101 - <complex_unique_key_list>  
1102 - </complex_unique_key_list>  
1103 - <table_properties>  
1104 - <schema></schema>  
1105 - </table_properties>  
1106 - </table>  
1107 - </contents>  
1108 - <column_groups>  
1109 - </column_groups>  
1110 - <test_data_list>  
1111 - <test_data>  
1112 - <name>usuarios_basededados</name>  
1113 - <export_order>0</export_order>  
1114 - <table_test_data>  
1115 - <table_id>5</table_id>  
1116 - <direct_test_data>  
1117 - </direct_test_data> 1232 + <normal_column>
  1233 + <word_id>4</word_id>
  1234 + <id>19</id>
  1235 + <description></description>
  1236 + <unique_key_name></unique_key_name>
  1237 + <logical_name></logical_name>
  1238 + <physical_name></physical_name>
  1239 + <type>text</type>
  1240 + <constraint></constraint>
  1241 + <default_value></default_value>
  1242 + <auto_increment>false</auto_increment>
  1243 + <foreign_key>false</foreign_key>
  1244 + <not_null>false</not_null>
  1245 + <primary_key>false</primary_key>
  1246 + <unique_key>false</unique_key>
  1247 + <character_set></character_set>
  1248 + <collation></collation>
  1249 + <sequence>
  1250 + <name></name>
  1251 + <schema></schema>
  1252 + <increment></increment>
  1253 + <min_value></min_value>
  1254 + <max_value></max_value>
  1255 + <start></start>
  1256 + <cache></cache>
  1257 + <cycle>false</cycle>
  1258 + <order>false</order>
  1259 + <description></description>
  1260 + <data_type></data_type>
  1261 + <decimal_size>0</decimal_size>
  1262 + </sequence>
  1263 + </normal_column>
  1264 + </columns>
  1265 + <indexes>
  1266 + </indexes>
  1267 + <complex_unique_key_list>
  1268 + </complex_unique_key_list>
  1269 + <table_properties>
  1270 + <schema></schema>
  1271 + </table_properties>
  1272 + </table>
  1273 + <table>
  1274 + <id>7</id>
  1275 + <height>86</height>
  1276 + <width>213</width>
  1277 + <font_name>Ubuntu</font_name>
  1278 + <font_size>9</font_size>
  1279 + <x>508</x>
  1280 + <y>103</y>
  1281 + <color>
  1282 + <r>230</r>
  1283 + <g>230</g>
  1284 + <b>250</b>
  1285 + </color>
  1286 + <connections>
  1287 + <relation>
  1288 + <id>4</id>
  1289 + <source>1</source>
  1290 + <target>7</target>
  1291 + <child_cardinality>1..n</child_cardinality>
  1292 + <parent_cardinality>1</parent_cardinality>
  1293 + <reference_for_pk>true</reference_for_pk>
  1294 + <name></name>
  1295 + <on_delete_action>RESTRICT</on_delete_action>
  1296 + <on_update_action>RESTRICT</on_update_action>
  1297 + <source_xp>-1</source_xp>
  1298 + <source_yp>-1</source_yp>
  1299 + <target_xp>-1</target_xp>
  1300 + <target_yp>-1</target_yp>
  1301 + <referenced_column>null</referenced_column>
  1302 + <referenced_complex_unique_key>null</referenced_complex_unique_key>
  1303 + </relation>
  1304 + <relation>
  1305 + <id>5</id>
  1306 + <source>5</source>
  1307 + <target>7</target>
  1308 + <child_cardinality>1..n</child_cardinality>
  1309 + <parent_cardinality>1</parent_cardinality>
  1310 + <reference_for_pk>true</reference_for_pk>
  1311 + <name></name>
  1312 + <on_delete_action>RESTRICT</on_delete_action>
  1313 + <on_update_action>RESTRICT</on_update_action>
  1314 + <source_xp>-1</source_xp>
  1315 + <source_yp>-1</source_yp>
  1316 + <target_xp>-1</target_xp>
  1317 + <target_yp>-1</target_yp>
  1318 + <referenced_column>null</referenced_column>
  1319 + <referenced_complex_unique_key>null</referenced_complex_unique_key>
  1320 + </relation>
  1321 + </connections>
  1322 + <physical_name>i3geousr_grupousuario</physical_name>
  1323 + <logical_name>i3geousr_grupousuario</logical_name>
  1324 + <description></description>
  1325 + <constraint></constraint>
  1326 + <primary_key_name></primary_key_name>
  1327 + <option></option>
  1328 + <columns>
  1329 + <normal_column>
  1330 + <id>20</id>
  1331 + <referenced_column>0</referenced_column>
  1332 + <relation>4</relation>
  1333 + <description></description>
  1334 + <unique_key_name></unique_key_name>
  1335 + <logical_name></logical_name>
  1336 + <physical_name></physical_name>
  1337 + <type>integer</type>
  1338 + <constraint></constraint>
  1339 + <default_value></default_value>
  1340 + <auto_increment>false</auto_increment>
  1341 + <foreign_key>true</foreign_key>
  1342 + <not_null>true</not_null>
  1343 + <primary_key>false</primary_key>
  1344 + <unique_key>false</unique_key>
  1345 + <character_set></character_set>
  1346 + <collation></collation>
  1347 + <sequence>
  1348 + <name></name>
  1349 + <schema></schema>
  1350 + <increment></increment>
  1351 + <min_value></min_value>
  1352 + <max_value></max_value>
  1353 + <start></start>
  1354 + <cache></cache>
  1355 + <cycle>false</cycle>
  1356 + <order>false</order>
  1357 + <description></description>
  1358 + <data_type></data_type>
  1359 + <decimal_size>0</decimal_size>
  1360 + </sequence>
  1361 + </normal_column>
  1362 + <normal_column>
  1363 + <id>21</id>
  1364 + <referenced_column>14</referenced_column>
  1365 + <relation>5</relation>
  1366 + <description></description>
  1367 + <unique_key_name></unique_key_name>
  1368 + <logical_name></logical_name>
  1369 + <physical_name></physical_name>
  1370 + <type>integer</type>
  1371 + <constraint></constraint>
  1372 + <default_value></default_value>
  1373 + <auto_increment>false</auto_increment>
  1374 + <foreign_key>true</foreign_key>
  1375 + <not_null>true</not_null>
  1376 + <primary_key>false</primary_key>
  1377 + <unique_key>false</unique_key>
  1378 + <character_set></character_set>
  1379 + <collation></collation>
  1380 + <sequence>
  1381 + <name></name>
  1382 + <schema></schema>
  1383 + <increment></increment>
  1384 + <min_value></min_value>
  1385 + <max_value></max_value>
  1386 + <start></start>
  1387 + <cache></cache>
  1388 + <cycle>false</cycle>
  1389 + <order>false</order>
  1390 + <description></description>
  1391 + <data_type></data_type>
  1392 + <decimal_size>0</decimal_size>
  1393 + </sequence>
  1394 + </normal_column>
  1395 + </columns>
  1396 + <indexes>
  1397 + </indexes>
  1398 + <complex_unique_key_list>
  1399 + </complex_unique_key_list>
  1400 + <table_properties>
  1401 + <schema></schema>
  1402 + </table_properties>
  1403 + </table>
  1404 + </contents>
  1405 + <column_groups>
  1406 + </column_groups>
  1407 + <test_data_list>
  1408 + <test_data>
  1409 + <name>usuarios_basededados</name>
  1410 + <export_order>0</export_order>
  1411 + <table_test_data>
  1412 + <table_id>1</table_id>
  1413 + <direct_test_data>
  1414 + <data>
  1415 + <column_data>
  1416 + <column_id>0</column_id>
  1417 + <value>1</value>
  1418 + </column_data>
  1419 + <column_data>
  1420 + <column_id>1</column_id>
  1421 + <value>1</value>
  1422 + </column_data>
  1423 + <column_data>
  1424 + <column_id>2</column_id>
  1425 + <value></value>
  1426 + </column_data>
  1427 + <column_data>
  1428 + <column_id>3</column_id>
  1429 + <value></value>
  1430 + </column_data>
  1431 + <column_data>
  1432 + <column_id>4</column_id>
  1433 + <value>admin</value>
  1434 + </column_data>
  1435 + <column_data>
  1436 + <column_id>5</column_id>
  1437 + <value>administrador do i3geo</value>
  1438 + </column_data>
  1439 + <column_data>
  1440 + <column_id>6</column_id>
  1441 + <value>admin</value>
  1442 + </column_data>
  1443 + </data>
  1444 + <data>
  1445 + <column_data>
  1446 + <column_id>0</column_id>
  1447 + <value>2</value>
  1448 + </column_data>
  1449 + <column_data>
  1450 + <column_id>1</column_id>
  1451 + <value>1</value>
  1452 + </column_data>
  1453 + <column_data>
  1454 + <column_id>2</column_id>
  1455 + <value></value>
  1456 + </column_data>
  1457 + <column_data>
  1458 + <column_id>3</column_id>
  1459 + <value></value>
  1460 + </column_data>
  1461 + <column_data>
  1462 + <column_id>4</column_id>
  1463 + <value>editor</value>
  1464 + </column_data>
  1465 + <column_data>
  1466 + <column_id>5</column_id>
  1467 + <value>teste de editor</value>
  1468 + </column_data>
  1469 + <column_data>
  1470 + <column_id>6</column_id>
  1471 + <value>editor</value>
  1472 + </column_data>
  1473 + </data>
  1474 + <data>
  1475 + <column_data>
  1476 + <column_id>0</column_id>
  1477 + <value>3</value>
  1478 + </column_data>
  1479 + <column_data>
  1480 + <column_id>1</column_id>
  1481 + <value>1</value>
  1482 + </column_data>
  1483 + <column_data>
  1484 + <column_id>2</column_id>
  1485 + <value></value>
  1486 + </column_data>
  1487 + <column_data>
  1488 + <column_id>3</column_id>
  1489 + <value></value>
  1490 + </column_data>
  1491 + <column_data>
  1492 + <column_id>4</column_id>
  1493 + <value>publicador</value>
  1494 + </column_data>
  1495 + <column_data>
  1496 + <column_id>5</column_id>
  1497 + <value>teste de publicador</value>
  1498 + </column_data>
  1499 + <column_data>
  1500 + <column_id>6</column_id>
  1501 + <value>publicador</value>
  1502 + </column_data>
  1503 + </data>
  1504 + <data>
  1505 + <column_data>
  1506 + <column_id>0</column_id>
  1507 + <value>4</value>
  1508 + </column_data>
  1509 + <column_data>
  1510 + <column_id>1</column_id>
  1511 + <value>1</value>
  1512 + </column_data>
  1513 + <column_data>
  1514 + <column_id>2</column_id>
  1515 + <value></value>
  1516 + </column_data>
  1517 + <column_data>
  1518 + <column_id>3</column_id>
  1519 + <value></value>
  1520 + </column_data>
  1521 + <column_data>
  1522 + <column_id>4</column_id>
  1523 + <value>editorgeo</value>
  1524 + </column_data>
  1525 + <column_data>
  1526 + <column_id>5</column_id>
  1527 + <value>teste de editor geo</value>
  1528 + </column_data>
  1529 + <column_data>
  1530 + <column_id>6</column_id>
  1531 + <value>editorgeo</value>
  1532 + </column_data>
  1533 + </data>
  1534 + </direct_test_data>
1118 <repeat_test_data> 1535 <repeat_test_data>
1119 <test_data_num>0</test_data_num> 1536 <test_data_num>0</test_data_num>
1120 <data_def_list> 1537 <data_def_list>
1121 <data_def> 1538 <data_def>
1122 - <column_id>10</column_id> 1539 + <column_id>0</column_id>
1123 <type>Format</type> 1540 <type>Format</type>
1124 <repeat_num>1</repeat_num> 1541 <repeat_num>1</repeat_num>
1125 <template>%</template> 1542 <template>%</template>
@@ -1134,7 +1551,7 @@ @@ -1134,7 +1551,7 @@
1134 </modified_values> 1551 </modified_values>
1135 </data_def> 1552 </data_def>
1136 <data_def> 1553 <data_def>
1137 - <column_id>11</column_id> 1554 + <column_id>1</column_id>
1138 <type>Format</type> 1555 <type>Format</type>
1139 <repeat_num>1</repeat_num> 1556 <repeat_num>1</repeat_num>
1140 <template>%</template> 1557 <template>%</template>
@@ -1149,7 +1566,7 @@ @@ -1149,7 +1566,7 @@
1149 </modified_values> 1566 </modified_values>
1150 </data_def> 1567 </data_def>
1151 <data_def> 1568 <data_def>
1152 - <column_id>12</column_id> 1569 + <column_id>2</column_id>
1153 <type>Format</type> 1570 <type>Format</type>
1154 <repeat_num>1</repeat_num> 1571 <repeat_num>1</repeat_num>
1155 <template>data_cadastro%</template> 1572 <template>data_cadastro%</template>
@@ -1164,7 +1581,7 @@ @@ -1164,7 +1581,7 @@
1164 </modified_values> 1581 </modified_values>
1165 </data_def> 1582 </data_def>
1166 <data_def> 1583 <data_def>
1167 - <column_id>13</column_id> 1584 + <column_id>3</column_id>
1168 <type>Format</type> 1585 <type>Format</type>
1169 <repeat_num>1</repeat_num> 1586 <repeat_num>1</repeat_num>
1170 <template>email%</template> 1587 <template>email%</template>
@@ -1179,7 +1596,7 @@ @@ -1179,7 +1596,7 @@
1179 </modified_values> 1596 </modified_values>
1180 </data_def> 1597 </data_def>
1181 <data_def> 1598 <data_def>
1182 - <column_id>14</column_id> 1599 + <column_id>4</column_id>
1183 <type>Format</type> 1600 <type>Format</type>
1184 <repeat_num>1</repeat_num> 1601 <repeat_num>1</repeat_num>
1185 <template>login%</template> 1602 <template>login%</template>
@@ -1194,7 +1611,7 @@ @@ -1194,7 +1611,7 @@
1194 </modified_values> 1611 </modified_values>
1195 </data_def> 1612 </data_def>
1196 <data_def> 1613 <data_def>
1197 - <column_id>15</column_id> 1614 + <column_id>5</column_id>
1198 <type>Format</type> 1615 <type>Format</type>
1199 <repeat_num>1</repeat_num> 1616 <repeat_num>1</repeat_num>
1200 <template>nome_usuario%</template> 1617 <template>nome_usuario%</template>
@@ -1209,7 +1626,7 @@ @@ -1209,7 +1626,7 @@
1209 </modified_values> 1626 </modified_values>
1210 </data_def> 1627 </data_def>
1211 <data_def> 1628 <data_def>
1212 - <column_id>16</column_id> 1629 + <column_id>6</column_id>
1213 <type>Format</type> 1630 <type>Format</type>
1214 <repeat_num>1</repeat_num> 1631 <repeat_num>1</repeat_num>
1215 <template>senha%</template> 1632 <template>senha%</template>
@@ -1226,6 +1643,630 @@ @@ -1226,6 +1643,630 @@
1226 </data_def_list> 1643 </data_def_list>
1227 </repeat_test_data> 1644 </repeat_test_data>
1228 </table_test_data> 1645 </table_test_data>
  1646 + <table_test_data>
  1647 + <table_id>6</table_id>
  1648 + <direct_test_data>
  1649 + <data>
  1650 + <column_data>
  1651 + <column_id>17</column_id>
  1652 + <value>1</value>
  1653 + </column_data>
  1654 + <column_data>
  1655 + <column_id>18</column_id>
  1656 + <value>admin/html/editormapfile</value>
  1657 + </column_data>
  1658 + <column_data>
  1659 + <column_id>19</column_id>
  1660 + <value>editor de mapfiles do sistema de administracao</value>
  1661 + </column_data>
  1662 + </data>
  1663 + <data>
  1664 + <column_data>
  1665 + <column_id>17</column_id>
  1666 + <value>2</value>
  1667 + </column_data>
  1668 + <column_data>
  1669 + <column_id>18</column_id>
  1670 + <value>admin/html/operacoes</value>
  1671 + </column_data>
  1672 + <column_data>
  1673 + <column_id>19</column_id>
  1674 + <value>abre o editor de operacoes</value>
  1675 + </column_data>
  1676 + </data>
  1677 + <data>
  1678 + <column_data>
  1679 + <column_id>17</column_id>
  1680 + <value>3</value>
  1681 + </column_data>
  1682 + <column_data>
  1683 + <column_id>18</column_id>
  1684 + <value>teste/</value>
  1685 + </column_data>
  1686 + <column_data>
  1687 + <column_id>19</column_id>
  1688 + <value>teste</value>
  1689 + </column_data>
  1690 + </data>
  1691 + <data>
  1692 + <column_data>
  1693 + <column_id>17</column_id>
  1694 + <value>4</value>
  1695 + </column_data>
  1696 + <column_data>
  1697 + <column_id>18</column_id>
  1698 + <value>admin/html/arvore</value>
  1699 + </column_data>
  1700 + <column_data>
  1701 + <column_id>19</column_id>
  1702 + <value>edicao da arvore do catalogo de temas</value>
  1703 + </column_data>
  1704 + </data>
  1705 + <data>
  1706 + <column_data>
  1707 + <column_id>17</column_id>
  1708 + <value>5</value>
  1709 + </column_data>
  1710 + <column_data>
  1711 + <column_id>18</column_id>
  1712 + <value>admin/html/menus</value>
  1713 + </column_data>
  1714 + <column_data>
  1715 + <column_id>19</column_id>
  1716 + <value>edicao da lista de menus</value>
  1717 + </column_data>
  1718 + </data>
  1719 + <data>
  1720 + <column_data>
  1721 + <column_id>17</column_id>
  1722 + <value>6</value>
  1723 + </column_data>
  1724 + <column_data>
  1725 + <column_id>18</column_id>
  1726 + <value>admin/html/ogcws</value>
  1727 + </column_data>
  1728 + <column_data>
  1729 + <column_id>19</column_id>
  1730 + <value>edicao das preferencias do servico WMS</value>
  1731 + </column_data>
  1732 + </data>
  1733 + <data>
  1734 + <column_data>
  1735 + <column_id>17</column_id>
  1736 + <value>7</value>
  1737 + </column_data>
  1738 + <column_data>
  1739 + <column_id>18</column_id>
  1740 + <value>admin/html/atlas</value>
  1741 + </column_data>
  1742 + <column_data>
  1743 + <column_id>19</column_id>
  1744 + <value>edicao de atlas</value>
  1745 + </column_data>
  1746 + </data>
  1747 + <data>
  1748 + <column_data>
  1749 + <column_id>17</column_id>
  1750 + <value>8</value>
  1751 + </column_data>
  1752 + <column_data>
  1753 + <column_id>18</column_id>
  1754 + <value>admin/html/identifica</value>
  1755 + </column_data>
  1756 + <column_data>
  1757 + <column_id>19</column_id>
  1758 + <value>lista de sistemas incluidos na ferramenta de identificacao</value>
  1759 + </column_data>
  1760 + </data>
  1761 + <data>
  1762 + <column_data>
  1763 + <column_id>17</column_id>
  1764 + <value>9</value>
  1765 + </column_data>
  1766 + <column_data>
  1767 + <column_id>18</column_id>
  1768 + <value>admin/html/incluimap</value>
  1769 + </column_data>
  1770 + <column_data>
  1771 + <column_id>19</column_id>
  1772 + <value>adapta mapfiles antigos para versoes novas do Mapserver</value>
  1773 + </column_data>
  1774 + </data>
  1775 + <data>
  1776 + <column_data>
  1777 + <column_id>17</column_id>
  1778 + <value>10</value>
  1779 + </column_data>
  1780 + <column_data>
  1781 + <column_id>18</column_id>
  1782 + <value>admin/html/mapas</value>
  1783 + </column_data>
  1784 + <column_data>
  1785 + <column_id>19</column_id>
  1786 + <value>lista de links para mapas</value>
  1787 + </column_data>
  1788 + </data>
  1789 + <data>
  1790 + <column_data>
  1791 + <column_id>17</column_id>
  1792 + <value>11</value>
  1793 + </column_data>
  1794 + <column_data>
  1795 + <column_id>18</column_id>
  1796 + <value>admin/html/perfis</value>
  1797 + </column_data>
  1798 + <column_data>
  1799 + <column_id>19</column_id>
  1800 + <value>lista controlada de perfis</value>
  1801 + </column_data>
  1802 + </data>
  1803 + <data>
  1804 + <column_data>
  1805 + <column_id>17</column_id>
  1806 + <value>12</value>
  1807 + </column_data>
  1808 + <column_data>
  1809 + <column_id>18</column_id>
  1810 + <value>admin/html/sistemas</value>
  1811 + </column_data>
  1812 + <column_data>
  1813 + <column_id>19</column_id>
  1814 + <value>lista de sistemas complementares adicionados ao catalogo de camadas</value>
  1815 + </column_data>
  1816 + </data>
  1817 + <data>
  1818 + <column_data>
  1819 + <column_id>17</column_id>
  1820 + <value>13</value>
  1821 + </column_data>
  1822 + <column_data>
  1823 + <column_id>18</column_id>
  1824 + <value>admin/html/subirshapefile</value>
  1825 + </column_data>
  1826 + <column_data>
  1827 + <column_id>19</column_id>
  1828 + <value>upload de shapefile para uma pasta específica no servidor</value>
  1829 + </column_data>
  1830 + </data>
  1831 + <data>
  1832 + <column_data>
  1833 + <column_id>17</column_id>
  1834 + <value>14</value>
  1835 + </column_data>
  1836 + <column_data>
  1837 + <column_id>18</column_id>
  1838 + <value>admin/html/tags</value>
  1839 + </column_data>
  1840 + <column_data>
  1841 + <column_id>19</column_id>
  1842 + <value>lista controlada de tags</value>
  1843 + </column_data>
  1844 + </data>
  1845 + <data>
  1846 + <column_data>
  1847 + <column_id>17</column_id>
  1848 + <value>15</value>
  1849 + </column_data>
  1850 + <column_data>
  1851 + <column_id>18</column_id>
  1852 + <value>admin/html/webservices</value>
  1853 + </column_data>
  1854 + <column_data>
  1855 + <column_id>19</column_id>
  1856 + <value>cadastro de links para webservices</value>
  1857 + </column_data>
  1858 + </data>
  1859 + <data>
  1860 + <column_data>
  1861 + <column_id>17</column_id>
  1862 + <value>16</value>
  1863 + </column_data>
  1864 + <column_data>
  1865 + <column_id>18</column_id>
  1866 + <value>admin/php/editortexto</value>
  1867 + </column_data>
  1868 + <column_data>
  1869 + <column_id>19</column_id>
  1870 + <value>editor de textos para edicao de mapfiles</value>
  1871 + </column_data>
  1872 + </data>
  1873 + <data>
  1874 + <column_data>
  1875 + <column_id>17</column_id>
  1876 + <value>17</value>
  1877 + </column_data>
  1878 + <column_data>
  1879 + <column_id>18</column_id>
  1880 + <value>admin/html/usuarios</value>
  1881 + </column_data>
  1882 + <column_data>
  1883 + <column_id>19</column_id>
  1884 + <value>cadastro de usuarios</value>
  1885 + </column_data>
  1886 + </data>
  1887 + </direct_test_data>
  1888 + <repeat_test_data>
  1889 + <test_data_num>0</test_data_num>
  1890 + <data_def_list>
  1891 + <data_def>
  1892 + <column_id>17</column_id>
  1893 + <type>Format</type>
  1894 + <repeat_num>1</repeat_num>
  1895 + <template>%</template>
  1896 + <from>1</from>
  1897 + <to>100</to>
  1898 + <increment>1</increment>
  1899 + <select>1</select>
  1900 + <select>2</select>
  1901 + <select>3</select>
  1902 + <select>4</select>
  1903 + <modified_values>
  1904 + </modified_values>
  1905 + </data_def>
  1906 + <data_def>
  1907 + <column_id>18</column_id>
  1908 + <type>Format</type>
  1909 + <repeat_num>1</repeat_num>
  1910 + <template>codigo%</template>
  1911 + <from>1</from>
  1912 + <to>100</to>
  1913 + <increment>1</increment>
  1914 + <select>codigo1</select>
  1915 + <select>codigo2</select>
  1916 + <select>codigo3</select>
  1917 + <select>codigo4</select>
  1918 + <modified_values>
  1919 + </modified_values>
  1920 + </data_def>
  1921 + <data_def>
  1922 + <column_id>19</column_id>
  1923 + <type>Format</type>
  1924 + <repeat_num>1</repeat_num>
  1925 + <template>descricao%</template>
  1926 + <from>1</from>
  1927 + <to>100</to>
  1928 + <increment>1</increment>
  1929 + <select>descricao1</select>
  1930 + <select>descricao2</select>
  1931 + <select>descricao3</select>
  1932 + <select>descricao4</select>
  1933 + <modified_values>
  1934 + </modified_values>
  1935 + </data_def>
  1936 + </data_def_list>
  1937 + </repeat_test_data>
  1938 + </table_test_data>
  1939 + <table_test_data>
  1940 + <table_id>3</table_id>
  1941 + <direct_test_data>
  1942 + <data>
  1943 + <column_data>
  1944 + <column_id>9</column_id>
  1945 + <value>16</value>
  1946 + </column_data>
  1947 + <column_data>
  1948 + <column_id>10</column_id>
  1949 + <value>2</value>
  1950 + </column_data>
  1951 + </data>
  1952 + <data>
  1953 + <column_data>
  1954 + <column_id>9</column_id>
  1955 + <value>1</value>
  1956 + </column_data>
  1957 + <column_data>
  1958 + <column_id>10</column_id>
  1959 + <value>2</value>
  1960 + </column_data>
  1961 + </data>
  1962 + <data>
  1963 + <column_data>
  1964 + <column_id>9</column_id>
  1965 + <value>1</value>
  1966 + </column_data>
  1967 + <column_data>
  1968 + <column_id>10</column_id>
  1969 + <value>3</value>
  1970 + </column_data>
  1971 + </data>
  1972 + <data>
  1973 + <column_data>
  1974 + <column_id>9</column_id>
  1975 + <value>4</value>
  1976 + </column_data>
  1977 + <column_data>
  1978 + <column_id>10</column_id>
  1979 + <value>3</value>
  1980 + </column_data>
  1981 + </data>
  1982 + <data>
  1983 + <column_data>
  1984 + <column_id>9</column_id>
  1985 + <value>5</value>
  1986 + </column_data>
  1987 + <column_data>
  1988 + <column_id>10</column_id>
  1989 + <value>3</value>
  1990 + </column_data>
  1991 + </data>
  1992 + <data>
  1993 + <column_data>
  1994 + <column_id>9</column_id>
  1995 + <value>7</value>
  1996 + </column_data>
  1997 + <column_data>
  1998 + <column_id>10</column_id>
  1999 + <value>3</value>
  2000 + </column_data>
  2001 + </data>
  2002 + <data>
  2003 + <column_data>
  2004 + <column_id>9</column_id>
  2005 + <value>10</value>
  2006 + </column_data>
  2007 + <column_data>
  2008 + <column_id>10</column_id>
  2009 + <value>3</value>
  2010 + </column_data>
  2011 + </data>
  2012 + <data>
  2013 + <column_data>
  2014 + <column_id>9</column_id>
  2015 + <value>13</value>
  2016 + </column_data>
  2017 + <column_data>
  2018 + <column_id>10</column_id>
  2019 + <value>2</value>
  2020 + </column_data>
  2021 + </data>
  2022 + <data>
  2023 + <column_data>
  2024 + <column_id>9</column_id>
  2025 + <value>13</value>
  2026 + </column_data>
  2027 + <column_data>
  2028 + <column_id>10</column_id>
  2029 + <value>4</value>
  2030 + </column_data>
  2031 + </data>
  2032 + <data>
  2033 + <column_data>
  2034 + <column_id>9</column_id>
  2035 + <value>15</value>
  2036 + </column_data>
  2037 + <column_data>
  2038 + <column_id>10</column_id>
  2039 + <value>3</value>
  2040 + </column_data>
  2041 + </data>
  2042 + </direct_test_data>
  2043 + <repeat_test_data>
  2044 + <test_data_num>0</test_data_num>
  2045 + <data_def_list>
  2046 + <data_def>
  2047 + <column_id>9</column_id>
  2048 + <type>Foreign Key</type>
  2049 + <repeat_num>1</repeat_num>
  2050 + <template>%</template>
  2051 + <from>1</from>
  2052 + <to>100</to>
  2053 + <increment>1</increment>
  2054 + <select>1</select>
  2055 + <select>2</select>
  2056 + <select>3</select>
  2057 + <select>4</select>
  2058 + <modified_values>
  2059 + </modified_values>
  2060 + </data_def>
  2061 + <data_def>
  2062 + <column_id>10</column_id>
  2063 + <type>Foreign Key</type>
  2064 + <repeat_num>1</repeat_num>
  2065 + <template>%</template>
  2066 + <from>1</from>
  2067 + <to>100</to>
  2068 + <increment>1</increment>
  2069 + <select>1</select>
  2070 + <select>2</select>
  2071 + <select>3</select>
  2072 + <select>4</select>
  2073 + <modified_values>
  2074 + </modified_values>
  2075 + </data_def>
  2076 + </data_def_list>
  2077 + </repeat_test_data>
  2078 + </table_test_data>
  2079 + <table_test_data>
  2080 + <table_id>4</table_id>
  2081 + <direct_test_data>
  2082 + <data>
  2083 + <column_data>
  2084 + <column_id>11</column_id>
  2085 + <value>1</value>
  2086 + </column_data>
  2087 + <column_data>
  2088 + <column_id>12</column_id>
  2089 + <value>admin</value>
  2090 + </column_data>
  2091 + <column_data>
  2092 + <column_id>13</column_id>
  2093 + <value>Podem executar qualquer tarefa, inclusive cadastrar novos administradores</value>
  2094 + </column_data>
  2095 + </data>
  2096 + <data>
  2097 + <column_data>
  2098 + <column_id>11</column_id>
  2099 + <value>2</value>
  2100 + </column_data>
  2101 + <column_data>
  2102 + <column_id>12</column_id>
  2103 + <value>editores</value>
  2104 + </column_data>
  2105 + <column_data>
  2106 + <column_id>13</column_id>
  2107 + <value>Podem criar/editar qualquer tema (mapfile) mas nao podem editar a arvore do catalogo de temas</value>
  2108 + </column_data>
  2109 + </data>
  2110 + <data>
  2111 + <column_data>
  2112 + <column_id>11</column_id>
  2113 + <value>3</value>
  2114 + </column_data>
  2115 + <column_data>
  2116 + <column_id>12</column_id>
  2117 + <value>publicadores</value>
  2118 + </column_data>
  2119 + <column_data>
  2120 + <column_id>13</column_id>
  2121 + <value>Podem alterar a arvore do catalogo de temas e dos atlas</value>
  2122 + </column_data>
  2123 + </data>
  2124 + <data>
  2125 + <column_data>
  2126 + <column_id>11</column_id>
  2127 + <value>4</value>
  2128 + </column_data>
  2129 + <column_data>
  2130 + <column_id>12</column_id>
  2131 + <value>editoresgeo</value>
  2132 + </column_data>
  2133 + <column_data>
  2134 + <column_id>13</column_id>
  2135 + <value>Podem editar dados geograficos</value>
  2136 + </column_data>
  2137 + </data>
  2138 + </direct_test_data>
  2139 + <repeat_test_data>
  2140 + <test_data_num>0</test_data_num>
  2141 + <data_def_list>
  2142 + <data_def>
  2143 + <column_id>11</column_id>
  2144 + <type>Format</type>
  2145 + <repeat_num>1</repeat_num>
  2146 + <template>%</template>
  2147 + <from>1</from>
  2148 + <to>100</to>
  2149 + <increment>1</increment>
  2150 + <select>1</select>
  2151 + <select>2</select>
  2152 + <select>3</select>
  2153 + <select>4</select>
  2154 + <modified_values>
  2155 + </modified_values>
  2156 + </data_def>
  2157 + <data_def>
  2158 + <column_id>12</column_id>
  2159 + <type>Format</type>
  2160 + <repeat_num>1</repeat_num>
  2161 + <template>nome%</template>
  2162 + <from>1</from>
  2163 + <to>100</to>
  2164 + <increment>1</increment>
  2165 + <select>nome1</select>
  2166 + <select>nome2</select>
  2167 + <select>nome3</select>
  2168 + <select>nome4</select>
  2169 + <modified_values>
  2170 + </modified_values>
  2171 + </data_def>
  2172 + <data_def>
  2173 + <column_id>13</column_id>
  2174 + <type>Format</type>
  2175 + <repeat_num>1</repeat_num>
  2176 + <template>descricao%</template>
  2177 + <from>1</from>
  2178 + <to>100</to>
  2179 + <increment>1</increment>
  2180 + <select>descricao1</select>
  2181 + <select>descricao2</select>
  2182 + <select>descricao3</select>
  2183 + <select>descricao4</select>
  2184 + <modified_values>
  2185 + </modified_values>
  2186 + </data_def>
  2187 + </data_def_list>
  2188 + </repeat_test_data>
  2189 + </table_test_data>
  2190 + <table_test_data>
  2191 + <table_id>2</table_id>
  2192 + <direct_test_data>
  2193 + <data>
  2194 + <column_data>
  2195 + <column_id>7</column_id>
  2196 + <value>2</value>
  2197 + </column_data>
  2198 + <column_data>
  2199 + <column_id>8</column_id>
  2200 + <value>2</value>
  2201 + </column_data>
  2202 + </data>
  2203 + <data>
  2204 + <column_data>
  2205 + <column_id>7</column_id>
  2206 + <value>3</value>
  2207 + </column_data>
  2208 + <column_data>
  2209 + <column_id>8</column_id>
  2210 + <value>3</value>
  2211 + </column_data>
  2212 + </data>
  2213 + <data>
  2214 + <column_data>
  2215 + <column_id>7</column_id>
  2216 + <value>4</value>
  2217 + </column_data>
  2218 + <column_data>
  2219 + <column_id>8</column_id>
  2220 + <value>4</value>
  2221 + </column_data>
  2222 + </data>
  2223 + <data>
  2224 + <column_data>
  2225 + <column_id>7</column_id>
  2226 + <value>1</value>
  2227 + </column_data>
  2228 + <column_data>
  2229 + <column_id>8</column_id>
  2230 + <value>1</value>
  2231 + </column_data>
  2232 + </data>
  2233 + </direct_test_data>
  2234 + <repeat_test_data>
  2235 + <test_data_num>0</test_data_num>
  2236 + <data_def_list>
  2237 + <data_def>
  2238 + <column_id>7</column_id>
  2239 + <type>Foreign Key</type>
  2240 + <repeat_num>1</repeat_num>
  2241 + <template>%</template>
  2242 + <from>1</from>
  2243 + <to>100</to>
  2244 + <increment>1</increment>
  2245 + <select>1</select>
  2246 + <select>2</select>
  2247 + <select>3</select>
  2248 + <select>4</select>
  2249 + <modified_values>
  2250 + </modified_values>
  2251 + </data_def>
  2252 + <data_def>
  2253 + <column_id>8</column_id>
  2254 + <type>Foreign Key</type>
  2255 + <repeat_num>1</repeat_num>
  2256 + <template>%</template>
  2257 + <from>1</from>
  2258 + <to>100</to>
  2259 + <increment>1</increment>
  2260 + <select>1</select>
  2261 + <select>2</select>
  2262 + <select>3</select>
  2263 + <select>4</select>
  2264 + <modified_values>
  2265 + </modified_values>
  2266 + </data_def>
  2267 + </data_def_list>
  2268 + </repeat_test_data>
  2269 + </table_test_data>
1229 </test_data> 2270 </test_data>
1230 </test_data_list> 2271 </test_data_list>
1231 <sequence_set> 2272 <sequence_set>