From 3ecbded32a7e555e6788b0285a830987df2446a4 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 10 Sep 2012 20:15:58 +0000 Subject: [PATCH] --- admin/admin.db | Bin 131072 -> 0 bytes admin/js/editormapfile.js | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- admin/php/editormapfile.php | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- admin/php/menutemas.php | 52 +++++++++++++++++++++++++++++++++------------------- admin/sql/cadastrodeusuarios.sql | 17 +++++++++++++++-- documentacao/diagramas/cadastrodeusuarios.erm | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------ 6 files changed, 440 insertions(+), 157 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 0183ddb..bac08ff 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/js/editormapfile.js b/admin/js/editormapfile.js index 6ac353e..42d8054 100644 --- a/admin/js/editormapfile.js +++ b/admin/js/editormapfile.js @@ -270,7 +270,7 @@ function montaNosRaiz(redesenha) if($mapfiles[i].imagem != "" && $i("mostraMini").checked == true){ conteudo += "
"; } - var d = {html:conteudo,id:$mapfiles[i].codigo,codigoMap:$mapfiles[i].codigo}; + var d = {html:conteudo,tipo:"mapfile",id_tema:$mapfiles[i].id_tema,id:$mapfiles[i].codigo,codigoMap:$mapfiles[i].codigo}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,iconePlus); nos.push(tempNode); } @@ -292,6 +292,25 @@ Monta as opções de edição básicas de um LAYER function montaRaizTema(no,dados) { var tempNodeR = ""; + //no que permite listar os grupos de usuarios registrados para o mapfile + if(!tree.getNodeByProperty("etiquetaGrupousrTema",no.data.codigoMap)) + { + var d = {tipo:"etiqueta",etiquetaGrupousrTema:no.data.id_tema,html:"Grupos de usuários que podem utilizar"}; + tempNodeR = new YAHOO.widget.HTMLNode(d, no, true,true); + tempNodeR.isLeaf = false; + var conteudo = "Adicionar um novo"; + var d = {html:conteudo}; + var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); + tempNode.isLeaf = true; + } + //adiciona a lista de grupos de usuarios no no + for (var i=0, j=dados.gruposusr.length; iLayers"}; @@ -303,6 +322,7 @@ function montaRaizTema(no,dados) var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); tempNode.isLeaf = true; } + //adiciona a lista de layers no no for (var i=0, j=dados.layers.length; i "+dados.nome+""; + var d = {html:conteudo,id:"usr_"+dados.id_tema+"_"+dados.id_grupo}; + return d; +} function montaNoLayer(codigo,indice){ var conteudo = " "; conteudo += " "; @@ -973,6 +997,38 @@ function excluirLayer(codigoMap,codigoLayer) var sUrl = "../php/editormapfile.php?funcao=excluirLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer; core_excluiNoTree(sUrl,no,mensagem,codigoLayer); } +function excluirGrupoUsrTema(id_tema,id_grupo,codigo_mapa){ + var handleYes = function() + { + this.hide(); + core_carregando("ativa"); + var mensagem = " excluindo "; + core_carregando(mensagem); + var sUrl = "../php/editormapfile.php?funcao=excluirGrupoUsrTema&id_tema="+id_tema+"&id_grupo="+id_grupo; + var callback = + { + success:function(o) + { + try + { + core_carregando("desativa"); + var no = tree.getNodeByProperty("id",codigo_mapa); + tree.removeChildren(no) ; + no.expand(); + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback); + }; + var handleNo = function() + {this.hide();}; + var mensagem = "Exclui restrição?"; + var largura = "300"; + core_dialogoContinua(handleYes,handleNo,mensagem,largura); +} /* Function: excluirClasse @@ -1135,6 +1191,13 @@ function editorGeral(codigoMap,codigoLayer) var sUrl = "../php/editormapfile.php?funcao=pegaGeral&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer; core_pegaDados("Obtendo dados...",sUrl,"montaEditorGeral"); } +function editorGrupousr(id_tema,codigo_mapa) +{ + core_montaEditor("","350px","200px","","Grupo usuario"); + $i("editor_bd").innerHTML = ""; + var sUrl = "../php/gruposusuarios.php?funcao=pegaGrupos"; + core_pegaDados("Obtendo dados...",sUrl,"montaEditorGrupousr"); +} /* Function: editorClasseGeral @@ -1279,7 +1342,16 @@ function montaEditorComport(dados) {salvarDadosEditor('comport',dados.codigoMap,dados.codigoLayer,false);}; new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); } - +function montaEditorGrupousr(dados){ + var temp = ""; + temp += "

Escolha o grupo de usuários:

"; + $i("editor_bd").innerHTML += temp; + var tempf = function() + {salvarDadosEditor('grupousr');}; + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: tempf }}); +} function montaEditorTitulo(dados) { var param = { @@ -1830,6 +1902,11 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo, { var campos = [], par = "", prog = "", temp, re; if(arguments.length < 6){testar = false;} + if(tipo == "grupousr"){ + campos = []; + par = "&id_tema="+$i("Eid_tema_usr").value+"&id_grupo="+$i("Eid_grupousr").value; + prog = "../php/editormapfile.php?funcao=adicionaGrupoUsrTema"; + } if(tipo == "comport") { campos = new Array("aplicaextensao","permitecomentario","temporizador","classe","legendaimg","escondido","identifica","transitioneffect","status","offsite","opacity","maxscale","minscale","labelitem","labelmaxscale","labelminscale","symbolscale","tolerance","toleranceunits","sizeunits"); @@ -1957,6 +2034,12 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo, {montaEditorClasseLabel(YAHOO.lang.JSON.parse(o.responseText));} if(tipo=="estilo") {montaEditorEstilo(YAHOO.lang.JSON.parse(o.responseText));} + + if(tipo =="grupousr"){ + var no = tree.getNodeByProperty("id",$i("Ecodigo_mapa_usr").value); + tree.removeChildren(no) ; + no.expand(); + } } else{ window.open("../../testamapfile.php?map="+YAHOO.lang.JSON.parse(o.responseText).url); diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 95fba41..4ed242e 100644 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -1042,6 +1042,14 @@ switch (strtoupper($funcao)) retornaJSON($res); exit; break; + case "ADICIONAGRUPOUSRTEMA": + retornaJSON(adicionaGrupoUsrTema()); + exit; + break; + case "EXCLUIRGRUPOUSRTEMA": + retornaJSON(excluirGrupoUsrTema()); + exit; + break; } function clonarMapfile() { @@ -1267,14 +1275,53 @@ function pegaItensLayer() $dados["itens"] = $itens; return $dados; } +function adicionaGrupoUsrTema(){ + global $id_tema,$id_grupo,$locaplic,$esquemaadmin; + include($locaplic."/admin/php/conexao.php"); + $sql = "select * from ".$esquemaadmin."i3geousr_grupotema where id_tema = $id_tema and id_grupo = $id_grupo"; + $q = $dbh->query($sql,PDO::FETCH_ASSOC); + if($q){ + $teste = $q->fetchAll(); + if(count($teste) == 0){ + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupotema (id_tema,id_grupo) VALUES ($id_tema,$id_grupo)"); + } + } + return "ok"; +} +function excluirGrupoUsrTema(){ + global $id_tema,$id_grupo,$locaplic,$esquemaadmin; + include($locaplic."/admin/php/conexao.php"); + $q = $dbhw->query("delete from ".$esquemaadmin."i3geousr_grupotema where id_tema = $id_tema and id_grupo = $id_grupo "); + return "ok"; +} function pegaLayers() { - global $codigoMap,$locaplic; + global $codigoMap,$locaplic,$esquemaadmin; $dados = array(); $mapfile = $locaplic."/temas/".$codigoMap.".map"; $mapa = ms_newMapObj($mapfile); $layers = $mapa->getalllayernames(); $dados["layers"] = $layers; + //lista de grupo de usuarios + $gruposusr = array(); + include($locaplic."/admin/php/conexao.php"); + $sql = " + select ".$esquemaadmin."i3geoadmin_temas.codigo_tema, ".$esquemaadmin."i3geousr_grupos.id_grupo, + ".$esquemaadmin."i3geousr_grupos.nome, ".$esquemaadmin."i3geousr_grupos.descricao, + ".$esquemaadmin."i3geousr_grupotema.id_tema + from + ".$esquemaadmin."i3geoadmin_temas + join ".$esquemaadmin."i3geousr_grupotema + on ".$esquemaadmin."i3geousr_grupotema.id_grupo = ".$esquemaadmin."i3geousr_grupos.id_grupo + join ".$esquemaadmin."i3geousr_grupos + on ".$esquemaadmin."i3geoadmin_temas.id_tema = ".$esquemaadmin."i3geousr_grupotema.id_tema + where codigo_tema = '".$codigoMap."' + "; + $q = $dbh->query($sql,PDO::FETCH_ASSOC); + if($q){ + $gruposusr = $q->fetchAll(); + } + $dados["gruposusr"] = $gruposusr; return $dados; } function listaClasses() diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index 41f6817..9b39c03 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -1221,49 +1221,63 @@ function listaMapsTemas() } sort($arquivos); // - //pega o nome de cada tema + //pega o nome de cada tema filtrando a listagem se for o caso // $sql = "select * from ".$esquemaadmin."i3geoadmin_temas "; - if(isset($filtro) && $filtro != "") - { + if(isset($filtro) && $filtro != ""){ $filtro = explode(",",$filtro); $filtro = $filtro[0]." ".$filtro[1]." '".$filtro[2]."' or ".$filtro[0]." ".$filtro[1]." '".strtoupper($filtro[2])."'"; $sql .= "where $filtro"; } - $dbh = ""; include($locaplic."/admin/php/conexao.php"); $q = $dbh->query($sql,PDO::FETCH_ASSOC); $regs = $q->fetchAll(); - //echo $sql;exit; + //pega os grupos de usuarios que podem acessar o tema + $grpids = array(); + $sql = "select nome,descricao,a.id_grupo,id_tema from ".$esquemaadmin."i3geousr_grupotema as a,".$esquemaadmin."i3geousr_grupos as b where a.id_grupo = b.id_grupo"; + $q = $dbh->query($sql,PDO::FETCH_ASSOC); + if($q){ + $gs = $q->fetchAll(); + //agrupa o array + foreach($gps as $g){ + array_push($grpids[$g["id_tema"]],array("id_grupo"=>$g["id_grupo"],"nome"=>$g["nome"],"descricao"=>$g["descricao"])); + } + } $nomes = array(); + $ids = array(); foreach($regs as $reg){ $nomes[$reg["codigo_tema"]] = $reg["nome_tema"]; + $ids[$reg["codigo_tema"]] = $reg["id_tema"]; //$outros[$reg["codigo_tema"]] = array("kmz"=>$reg["kmz_tema"],"kml"=>$reg["kml_tema"],"ogc"=>$reg["ogc_tema"],"download"=>$reg["download_tema"],"link"=>$reg["link_tema"]); } $lista = array(); - foreach($arquivos as $arq) - { + foreach($arquivos as $arq){ $extensao = $arq["extensao"]; $arq = $arq["nome"]; - $n = explode(".",$arq); - $n = $nomes[$n[0]]; - if(!$n) - { + $nT = explode(".",$arq); + $n = $nomes[$nT[0]]; + if(!$n){ $n = ""; } + $id = $ids[$nT[0]]; + if(!$id){ + $id = ""; + } + //pega os grupos de usuarios + $grupousr = $grpids[$id]; + if(!$grupousr){ + $grupousr = ""; + } $imagem = ""; - if(file_exists($locaplic."/temas/miniaturas/".$arq.".map.mini.png")) - { + if(file_exists($locaplic."/temas/miniaturas/".$arq.".map.mini.png")){ $imagem = $arq.".map.mini.png"; } - if(isset($filtro) && $filtro != "" && $n != "") - { - $lista[] = array("nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao); + if(isset($filtro) && $filtro != "" && $n != ""){ + $lista[] = array("grupousr"=>$grupousr,"id_tema"=>$id,"nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao); } - if(!isset($filtro) || $filtro == "") - { - $lista[] = array("nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao); + if(!isset($filtro) || $filtro == ""){ + $lista[] = array("grupousr"=>$grupousr,"id_tema"=>$id,"nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao); } } return $lista; diff --git a/admin/sql/cadastrodeusuarios.sql b/admin/sql/cadastrodeusuarios.sql index e452c04..efd775f 100644 --- a/admin/sql/cadastrodeusuarios.sql +++ b/admin/sql/cadastrodeusuarios.sql @@ -1,6 +1,7 @@ /* drop tables */ +drop table i3geousr_grupotema; drop table i3geousr_grupousuario; drop table i3geousr_grupos; drop table i3geousr_operacoespapeis; @@ -10,7 +11,7 @@ drop table i3geousr_papeis; drop table i3geousr_usuarios; - + /* create tables */ @@ -26,6 +27,18 @@ create table i3geousr_grupos ); +-- define os grupos que podem utilizar os temas (mapfiles) +create table i3geousr_grupotema +( + -- identificador único do grupo + id_grupo integer not null, + -- código do tema na tabela i3geoadmin_temas + id_tema integer not null, + foreign key (id_grupo) + references i3geousr_grupos (id_grupo) +); + + -- cadastro de usuários create table i3geousr_usuarios ( @@ -96,4 +109,4 @@ create table i3geousr_papelusuario ); - + diff --git a/documentacao/diagramas/cadastrodeusuarios.erm b/documentacao/diagramas/cadastrodeusuarios.erm index 3757ac7..36d0df9 100644 --- a/documentacao/diagramas/cadastrodeusuarios.erm +++ b/documentacao/diagramas/cadastrodeusuarios.erm @@ -11,7 +11,7 @@ 0 1.0 - 7 + 193 0 230 @@ -41,7 +41,7 @@ false All - /var/www/i3geo/admin/sql/cadastrodeusuarios.sql + c:\ms4w\apache\htdocs\i3geo\admin\sql\cadastrodeusuarios.sql @@ -97,7 +97,7 @@ -1 -1 - Ubuntu + Segoe UI 9 50 50 @@ -110,7 +110,7 @@ false 2012-07-19 01:51:14 - 2012-07-30 22:24:51 + 2012-09-09 13:19:23 Project Name @@ -281,13 +281,26 @@ null false + código do tema na tabela i3geoadmin_temas + id_tema + id_tema + integer + + + 11 + null + null + false + null + false + id_usuario id_usuario integer - 11 + 12 null null false @@ -300,7 +313,7 @@ text - 12 + 13 null null false @@ -313,7 +326,7 @@ text - 13 + 14 null null false @@ -326,7 +339,7 @@ text - 14 + 15 null null false @@ -339,7 +352,7 @@ text - 15 + 16 null null false @@ -395,7 +408,7 @@ - 10 + 11 0 @@ -523,7 +536,7 @@ - 11 + 12 4 @@ -555,7 +568,7 @@ - 14 + 15 5 @@ -587,7 +600,7 @@ - 15 + 16 6 @@ -816,7 +829,7 @@ 9 - 17 + 16 2 @@ -944,7 +957,7 @@ - 12 + 13 12 @@ -1018,29 +1031,160 @@ 5 - 107 - 203 + 86 + 220Ubuntu9 - 502 - 308 + 532 + 321 230 230 250 + + 4 + 1 + 5 + 1..n + 1 + true + + RESTRICT + RESTRICT + -1 + -1 + -1 + -1 + null + null + + + 5 + 7 + 5 + 1..n + 1 + true + + RESTRICT + RESTRICT + -1 + -1 + -1 + -1 + null + null + - i3geousr_grupos - i3geousr_grupos - Grupos de usuários + i3geousr_grupousuario + i3geousr_grupousuario + - 7 14 + 0 + 4 + + + + + integer + + + false + true + true + false + false + + + + + + + + + + + false + false + + + 0 + + + + 15 + 19 + 5 + + + + + integer + + + false + true + true + false + false + + + + + + + + + + + false + false + + + 0 + + + + + + + + + + +
+ + 6 + 107 + 235 + Ubuntu + 9 + 851 + 251 + + 128 + 128 + 192 + + + + i3geousr_operacoes + i3geousr_operacoes + Cadastro de operações do sistema + + + + + + 8 + 16 @@ -1071,8 +1215,8 @@ - 13 - 15 + 1 + 17 @@ -1103,8 +1247,8 @@ - 5 - 16 + 4 + 18 @@ -1144,30 +1288,30 @@
- 6 + 7107 - 226 + 213Ubuntu9 - 782 - 176 + 524 + 48 - 128 - 128 - 192 + 230 + 230 + 250 - i3geousr_operacoes - i3geousr_operacoes - Cadastro de operações do sistema + i3geousr_grupos + i3geousr_grupos + Grupos de usuários - 8 - 17 + 7 + 19 @@ -1198,8 +1342,8 @@ - 1 - 18 + 14 + 20 @@ -1230,8 +1374,8 @@ - 4 - 19 + 5 + 21 @@ -1271,13 +1415,13 @@
- 7 + 886 - 213 - Ubuntu + 197 + Segoe UI9 - 508 - 103 + 838 + 72 230 230 @@ -1285,26 +1429,9 @@ - 4 - 1 - 7 - 1..n - 1 - true - - RESTRICT - RESTRICT - -1 - -1 - -1 - -1 - null - null - - - 5 - 5 - 7 + 6 + 7 + 8 1..n 1 true @@ -1319,17 +1446,17 @@ null - i3geousr_grupousuario - i3geousr_grupousuario - + i3geousr_grupotema + i3geousr_grupotema + Define os grupos que podem utilizar os temas (mapfiles) - 20 - 0 - 4 + 22 + 19 + 6 @@ -1360,9 +1487,8 @@ - 21 - 14 - 5 + 10 + 23 @@ -1371,7 +1497,7 @@ false - true + false true false false @@ -1648,239 +1774,239 @@ - 17 + 16 1 - 18 + 17 admin/html/editormapfile - 19 + 18 editor de mapfiles do sistema de administracao - 17 + 16 2 - 18 + 17 admin/html/operacoes - 19 + 18 abre o editor de operacoes - 17 + 16 3 - 18 + 17 teste/ - 19 + 18 teste - 17 + 16 4 - 18 + 17 admin/html/arvore - 19 + 18 edicao da arvore do catalogo de temas - 17 + 16 5 - 18 + 17 admin/html/menus - 19 + 18 edicao da lista de menus - 17 + 16 6 - 18 + 17 admin/html/ogcws - 19 + 18 edicao das preferencias do servico WMS - 17 + 16 7 - 18 + 17 admin/html/atlas - 19 + 18 edicao de atlas - 17 + 16 8 - 18 + 17 admin/html/identifica - 19 + 18 lista de sistemas incluidos na ferramenta de identificacao - 17 + 16 9 - 18 + 17 admin/html/incluimap - 19 + 18 adapta mapfiles antigos para versoes novas do Mapserver - 17 + 16 10 - 18 + 17 admin/html/mapas - 19 + 18 lista de links para mapas - 17 + 16 11 - 18 + 17 admin/html/perfis - 19 + 18 lista controlada de perfis - 17 + 16 12 - 18 + 17 admin/html/sistemas - 19 + 18 lista de sistemas complementares adicionados ao catalogo de camadas - 17 + 16 13 - 18 + 17 admin/html/subirshapefile - 19 + 18 upload de shapefile para uma pasta específica no servidor - 17 + 16 14 - 18 + 17 admin/html/tags - 19 + 18 lista controlada de tags - 17 + 16 15 - 18 + 17 admin/html/webservices - 19 + 18 cadastro de links para webservices - 17 + 16 16 - 18 + 17 admin/php/editortexto - 19 + 18 editor de textos para edicao de mapfiles - 17 + 16 17 - 18 + 17 admin/html/usuarios - 19 + 18 cadastro de usuarios @@ -1889,7 +2015,7 @@ 0 - 17 + 16 Format 1 @@ -1904,7 +2030,7 @@ - 18 + 17 Format 1 @@ -1919,7 +2045,7 @@ - 19 + 18 Format 1 -- libgit2 0.21.2