From f708ea495d8c97e2fced52ca3f1eb28f5b831621 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 28 Nov 2012 11:22:27 +0000 Subject: [PATCH] Inclusão de usuario eitor para o sistema de metadados estatisticos --- admin/admin.db | Bin 157696 -> 0 bytes admin/html/operacoes.html | 1 + admin/html/usuarios.html | 1 + admin/js/usuarios.js | 2 +- admin/php/criabanco.php | 16 ++++++++++++---- admin/php/login.php | 3 ++- admin/php/upgradebanco46_47.php | 7 +++++++ admin/sql/cadastrodeusuarios.sql | 16 ++++++++-------- admin/sql/usuarios_basededados.sql | 4 ++++ documentacao/diagramas/cadastrodeusuarios.erm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- temas/estadosl.map | 2 +- 11 files changed, 109 insertions(+), 23 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 3e76268..37d364f 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/html/operacoes.html b/admin/html/operacoes.html index 3510c83..3c304b3 100644 --- a/admin/html/operacoes.html +++ b/admin/html/operacoes.html @@ -36,6 +36,7 @@ body { utilizá-las

Para que o controle funcione, o código do i3Geo deve ser modificado para que a validação seja realizada. +

Usuários administradores podem acessar qualquer operação.

diff --git a/admin/html/usuarios.html b/admin/html/usuarios.html index 1166866..4c9aac4 100755 --- a/admin/html/usuarios.html +++ b/admin/html/usuarios.html @@ -32,6 +32,7 @@ body {
Ajuda

Cada usuário pode possuir papéis. Os papéis são utilizados para definir as operações que podem ser executadas. +

Apenas administradores podem acessar esses dados.

diff --git a/admin/js/usuarios.js b/admin/js/usuarios.js index 4ae19c1..cf5ee3a 100755 --- a/admin/js/usuarios.js +++ b/admin/js/usuarios.js @@ -166,7 +166,7 @@ function adicionaNosUsuarios(dados,redesenha){ conteudo += " "; conteudo += " "; if(dados[i].nome_usuario && dados[i].nome_usuario != "") - {conteudo += " "+dados[i].nome_usuario+" - "+dados[i].login+" ativo: "+dados[i].ativo+"";} + {conteudo += " "+dados[i].nome_usuario+" - "+dados[i].login+" - ativo: "+dados[i].ativo+"";} else {conteudo += " Edite para definir o usuário!!!";} var d = {html:conteudo,id_usuario:dados[i].id_usuario,tipo:"usuario"}; diff --git a/admin/php/criabanco.php b/admin/php/criabanco.php index 3ee946d..c0f1d17 100644 --- a/admin/php/criabanco.php +++ b/admin/php/criabanco.php @@ -51,6 +51,7 @@ include("admin.php"); error_reporting(E_ALL); $tabelas = array( + //tabelas gerais do sistema de administracao "CREATE TABLE ".$esquemaadmin."i3geoadmin_grupos (desc_grupo TEXT, id_grupo INTEGER PRIMARY KEY, nome_grupo TEXT, it TEXT, es TEXT, en TEXT)", "CREATE TABLE ".$esquemaadmin."i3geoadmin_sistemasf (abrir_funcao TEXT, h_funcao NUMERIC, id_funcao INTEGER PRIMARY KEY, id_sistema NUMERIC, nome_funcao TEXT, perfil_funcao TEXT, w_funcao NUMERIC)", "CREATE TABLE ".$esquemaadmin."i3geoadmin_subgrupos (desc_subgrupo TEXT, id_subgrupo INTEGER PRIMARY KEY, nome_subgrupo TEXT, it TEXT, es TEXT, en TEXT)", @@ -70,6 +71,7 @@ "CREATE TABLE ".$esquemaadmin."i3geoadmin_n2 (publicado TEXT, ordem NUMERIC, id_n1 NUMERIC, id_n2 INTEGER PRIMARY KEY, id_subgrupo NUMERIC, n2_perfil TEXT)", "CREATE TABLE ".$esquemaadmin."i3geoadmin_n3 (publicado TEXT, ordem NUMERIC, id_n2 NUMERIC, id_n3 INTEGER PRIMARY KEY, id_tema NUMERIC, n3_perfil TEXT)", "CREATE TABLE ".$esquemaadmin."i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)", + //tabelas do sistema de controle de usuarios "CREATE TABLE ".$esquemaadmin."i3geousr_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)", "CREATE TABLE ".$esquemaadmin."i3geousr_papelusuario (id_papel NUMERIC, id_usuario NUMERIC)", "CREATE TABLE ".$esquemaadmin."i3geousr_papeis (descricao TEXT, id_papel INTEGER PRIMARY KEY, nome TEXT)", @@ -78,6 +80,7 @@ "CREATE TABLE ".$esquemaadmin."i3geousr_grupousuario (id_usuario NUMERIC, id_grupo NUMERIC)", "CREATE TABLE ".$esquemaadmin."i3geousr_grupotema (id_grupo NUMERIC, id_tema NUMERIC)", "CREATE TABLE ".$esquemaadmin."i3geousr_grupos (id_grupo INTEGER PRIMARY KEY, nome TEXT)", + //tabelas do sistema metaestat "create table ".$esquemaadmin."i3geoestat_conexao (codigo_estat_conexao integer primary key,bancodedados text,host text,porta text,usuario text,senha text)", "create table ".$esquemaadmin."i3geoestat_tipo_regiao(codigo_tipo_regiao integer primary key,nome_tipo_regiao text,descricao_tipo_regiao text,codigo_estat_conexao integer,esquemadb text,tabela text,colunageo text,data text,identificador integer,colunanomeregiao text,srid text,colunacentroide text, colunasvisiveis text, apelidos text)", "create table ".$esquemaadmin."i3geoestat_agregaregiao(id_agregaregiao integer primary key,codigo_tipo_regiao integer,codigo_tipo_regiao_pai integer,colunaligacao_regiaopai text)", @@ -92,6 +95,7 @@ "create table ".$esquemaadmin."i3geoestat_medida_variavel_link(link text,id_medida_variavel integer,nome text,id_link integer primary key)", "create table ".$esquemaadmin."i3geoestat_parametro_medida(id_parametro_medida integer primary key,coluna text,nome text,descricao text,id_pai integer default 0,id_medida_variavel integer)" ); + //valida o usuario e aplica if($conexaoadmin == ""){ if(empty($_POST["senha"]) || empty($_POST["usuario"])){ criabancoformularioLoginMaster("criabanco.php"); @@ -148,16 +152,19 @@ //echo $tabela."
"; $q = $dbhw->query($tabela); } + //insercao de dados default if(!empty($banco)){ + //papeis $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem executar qualquer tarefa, inclusive cadastrar novos administradores',1,'admin')"); $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')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')"); - + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES ('Podem administrar o sistema METAESTAT','5', 'adminmetaestat')"); + //usuarios - inclui apenas o admin $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_usuarios VALUES(1,'','',1,'admin','admin','admin')"); - + //papel do usuario $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papelusuario VALUES(1,1)"); - + //operacoes controladas $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(1,'admin/html/editormapfile','editor de mapfiles do sistema de administracao')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(2,'admin/html/operacoes','abre o editor de operacoes')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES(3,'teste/','teste')"); @@ -176,7 +183,7 @@ $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES('16', 'admin/php/editortexto', 'editor de textos para edicao de mapfiles')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES('17', 'admin/html/usuarios', 'cadastro de usuarios')"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoes VALUES('18', 'admin/metaestat/geral', 'permite edicoes mais comuns do sistema de metadados estatisticos')"); - + //papeis por operacao $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,2)"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(1,3)"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(4,3)"); @@ -188,6 +195,7 @@ $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(15,3)"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(16,2)"); $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(18,1)"); + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES ('18', '5')"); $banco = null; echo "Banco criado!!! administrador: admin / admin - não esqueça de alterar essa senha na opção de edição do cadastro de usuários"; diff --git a/admin/php/login.php b/admin/php/login.php index 1053527..a2660d6 100644 --- a/admin/php/login.php +++ b/admin/php/login.php @@ -209,8 +209,9 @@ function verificaPapelSessao($id_papel){ } function verificaOperacaoSessao($operacao){ $resultado = false; - //verifica se e administrador + //avalidacao consulta $_SESSION, que e definida no login if(validaSessao()){ + //verifica se e administrador, caso positivo, permite qq operacao foreach($_SESSION["papeis"] as $p){ if($p == 1){ return true; diff --git a/admin/php/upgradebanco46_47.php b/admin/php/upgradebanco46_47.php index dfede13..275b825 100644 --- a/admin/php/upgradebanco46_47.php +++ b/admin/php/upgradebanco46_47.php @@ -73,6 +73,7 @@ else{ } } error_reporting(E_ALL); +//tabelas do controle de usuarios e sistema metaestat $tabelas = array( "CREATE TABLE ".$esquemaadmin."i3geousr_usuarios (ativo NUMERIC, data_cadastro TEXT, email TEXT, id_usuario INTEGER PRIMARY KEY, login TEXT, nome_usuario TEXT, senha TEXT)", "CREATE TABLE ".$esquemaadmin."i3geousr_papelusuario (id_papel NUMERIC, id_usuario NUMERIC)", @@ -128,6 +129,10 @@ if(!in_array($teste,3)) $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem alterar a arvore do catalogo e dos atlas',3,'publicadores')"); if(!in_array($teste,4)) $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES('Podem editar dados geograficos',4,'editoresgeo')"); +if(!in_array($teste,5)) + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_papeis VALUES ('Podem administrar o sistema METAESTAT','5', 'adminmetaestat')"); + + $teste = lista("select * from ".$esquemaadmin."i3geousr_usuarios","id_usuario"); if(!in_array($teste,1)) @@ -199,6 +204,8 @@ if(!in_array($teste,'16-2')) $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(16,2)"); if(!in_array($teste,'18-1')) $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES(18,1)"); +if(!in_array($teste,'18-5')) + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_operacoespapeis VALUES (18,5)"); //cria o banco de dados de metadados estatisticos if(file_exists("../../admin/metaestat.db")) { echo "
Arquivo admin/metaestat.db ja existe. Vc deve apagá-lo para poder criá-lo novamente caso precise"; diff --git a/admin/sql/cadastrodeusuarios.sql b/admin/sql/cadastrodeusuarios.sql index efd775f..8db3522 100644 --- a/admin/sql/cadastrodeusuarios.sql +++ b/admin/sql/cadastrodeusuarios.sql @@ -11,7 +11,7 @@ drop table i3geousr_papeis; drop table i3geousr_usuarios; - + /* create tables */ @@ -61,10 +61,10 @@ create table i3geousr_grupousuario id_usuario integer not null, -- identificador único do grupo id_grupo integer not null, - foreign key (id_usuario) - references i3geousr_usuarios (id_usuario), foreign key (id_grupo) - references i3geousr_grupos (id_grupo) + references i3geousr_grupos (id_grupo), + foreign key (id_usuario) + references i3geousr_usuarios (id_usuario) ); @@ -91,10 +91,10 @@ create table i3geousr_operacoespapeis ( id_operacao integer not null, id_papel integer not null, - foreign key (id_operacao) - references i3geousr_operacoes (id_operacao), foreign key (id_papel) - references i3geousr_papeis (id_papel) + references i3geousr_papeis (id_papel), + foreign key (id_operacao) + references i3geousr_operacoes (id_operacao) ); @@ -109,4 +109,4 @@ create table i3geousr_papelusuario ); - + diff --git a/admin/sql/usuarios_basededados.sql b/admin/sql/usuarios_basededados.sql index 5bf3c2e..cd73e7b 100644 --- a/admin/sql/usuarios_basededados.sql +++ b/admin/sql/usuarios_basededados.sql @@ -3,6 +3,7 @@ INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, n INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('2', '1', '', '', 'editor', 'teste de editor', 'editor'); INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('3', '1', '', '', 'publicador', 'teste de publicador', 'publicador'); INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('4', '1', '', '', 'editorgeo', 'teste de editor geo', 'editorgeo'); +INSERT INTO i3geousr_usuarios (id_usuario, ativo, data_cadastro, email, login, nome_usuario, senha) VALUES ('5', '1', '', '', 'editormetaestat', 'teste de editor do METAESTAT', 'editormetaestat'); -- i3geousr_operacoes @@ -38,6 +39,7 @@ INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('13', '2'); INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('13', '4'); INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('15', '3'); INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('18', '1'); +INSERT INTO i3geousr_operacoespapeis (id_operacao, id_papel) VALUES ('18', '5'); -- i3geousr_papeis @@ -45,6 +47,7 @@ INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('1', 'admin', 'P 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'); INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('3', 'publicadores', 'Podem alterar a arvore do catalogo de temas e dos atlas'); INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('4', 'editoresgeo', 'Podem editar dados geograficos'); +INSERT INTO i3geousr_papeis (id_papel, nome, descricao) VALUES ('5', 'adminmetaestat', 'Podem administrar o sistema METAESTAT'); -- i3geousr_papelusuario @@ -52,5 +55,6 @@ INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('2', '2'); INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('3', '3'); INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('4', '4'); INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('1', '1'); +INSERT INTO i3geousr_papelusuario (id_usuario, id_papel) VALUES ('5', '5'); diff --git a/documentacao/diagramas/cadastrodeusuarios.erm b/documentacao/diagramas/cadastrodeusuarios.erm index fd7d748..7e4e97d 100644 --- a/documentacao/diagramas/cadastrodeusuarios.erm +++ b/documentacao/diagramas/cadastrodeusuarios.erm @@ -41,7 +41,7 @@ false All - c:\ms4w\apache\htdocs\i3geo\admin\sql\cadastrodeusuarios.sql + /var/www/i3geo/admin/sql/cadastrodeusuarios.sql @@ -110,7 +110,7 @@ false 2012-07-19 01:51:14 - 2012-10-31 11:59:37 + 2012-11-28 09:04:26 Project Name @@ -656,7 +656,7 @@ 0 - 1 + 4 2 1..n 1 @@ -673,7 +673,7 @@ 1 - 4 + 1 2 1..n 1 @@ -699,7 +699,7 @@ 7 0 - 0 + 1 @@ -732,7 +732,7 @@ 8 11 - 1 + 0 @@ -989,7 +989,7 @@ - 4 + 3 13 @@ -1247,7 +1247,7 @@ - 3 + 4 18 @@ -1657,6 +1657,36 @@ editorgeo + + + 0 + 5 + + + 1 + 1 + + + 2 + + + + 3 + + + + 4 + editormetaestat + + + 5 + teste de editor do METAESTAT + + + 6 + editormetaestat + + 0 @@ -2189,6 +2219,16 @@ 1 + + + 9 + 18 + + + 10 + 5 + + 0 @@ -2285,6 +2325,20 @@ Podem editar dados geograficos + + + 11 + 5 + + + 12 + adminmetaestat + + + 13 + Podem administrar o sistema METAESTAT + + 0 @@ -2380,6 +2434,16 @@ 1 + + + 7 + 5 + + + 8 + 5 + + 0 diff --git a/temas/estadosl.map b/temas/estadosl.map index 477d1af..69e2aac 100644 --- a/temas/estadosl.map +++ b/temas/estadosl.map @@ -7,7 +7,7 @@ LAYER NAME estadosl # ok TYPE line STATUS DEFAULT - DATA "c:/ms4w/apache/htdocs/i3geo/aplicmap/dados/estados.shp" + DATA "/var/www/i3geo/aplicmap/dados/estados.shp" TEMPLATE "estados.htm" METADATA ITENS "ESTADO" -- libgit2 0.21.2