From 27f4cf3a0106195c69a371d59188279268471c3c Mon Sep 17 00:00:00 2001
From: Edmar Moretti Perfis existentes: (clique na célula para editar e salve a linha editada)
A lista de grupos é baseada no banco admin.db e os usuários que não são editores podem
ver apenas os grupos publicados.
- A lista de IPs dos usuários que podem editar os menu é definida no
+ A lista de IPs dos usuários que podem administrar o i3geo é definida no
arquivo i3geo/ms_configura.php
diff --git a/admin/html/i3geoadmin_temas.html b/admin/html/i3geoadmin_temas.html
deleted file mode 100644
index d337fc5..0000000
--- a/admin/html/i3geoadmin_temas.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-Administração do i3geo - menu de temas
-
-
A lista de temas é baseada no banco admin.db.
- A lista de IPs dos usuários que podem editar os menu é definida no
+ A lista de IPs dos usuários que podem administrar o i3geo é definida no
arquivo i3geo/ms_configura.php
diff --git a/admin/html/menus.html b/admin/html/menus.html
index 3304266..0e62b38 100644
--- a/admin/html/menus.html
+++ b/admin/html/menus.html
@@ -33,7 +33,7 @@
ver apenas os menus publicados.
Os perfis que podem ser definidos para cada menu, são obtidos da tabela de perfis. Veja
o menu principal do sistema de administração para maiores detalhes.
- A lista de IPs dos usuários que podem editar os menu é definida no
+ A lista de IPs dos usuários que podem administrar o i3geo é definida no
arquivo i3geo/ms_configura.php
diff --git a/admin/html/perfis.html b/admin/html/perfis.html
new file mode 100644
index 0000000..5460244
--- /dev/null
+++ b/admin/html/perfis.html
@@ -0,0 +1,45 @@
+
+
+
+
+ Administração do i3geo - perfis
+
+
+ Os perfis são utilizados para restringir o acesso a determinados temas,
+ grupos, sub-grupos e mapas. A lista de perfis é utilizada nas definições desses
+ itens.
+ A lista de perfis é baseada no banco admin.db.
+ A lista de IPs dos usuários que podem administrar o i3geo é definida no
+ arquivo i3geo/ms_configura.php
+
+
A lista de sub-grupos é baseada no banco admin.db e os usuários que não são editores podem
ver apenas os sub-grupos publicados.
- A lista de IPs dos usuários que podem editar os menu é definida no
+ A lista de IPs dos usuários que podem administrar o i3geo é definida no
arquivo i3geo/ms_configura.php
diff --git a/admin/index.html b/admin/index.html
index 0b9c520..970342d 100644
--- a/admin/index.html
+++ b/admin/index.html
@@ -83,12 +83,12 @@ que por sua vez contém temas.
Ajuda | |
Editar a lista de perfis | |
Editar a lista de perfis | |
Editar a lista de tags (palavras-chave) | |
Editar a lista de menus | |
Editar a lista de grupos | |
Editar a lista de sub-grupos | |
Editar a lista de temas | |
Editar a lista de temas | |
Editar a árvore dos menus | |
Importar XML |
" + oData + "
"; + }; + var formatTextoId = function(elCell, oRecord, oColumn, oData) + { + elCell.innerHTML = "" + oData + "
"; + }; + + var formatSalva = function(elCell, oRecord, oColumn) + { + elCell.innerHTML = ""; + }; + var formatExclui = function(elCell, oRecord, oColumn) + { + elCell.innerHTML = ""; + }; + var myColumnDefs = [ + {key:"excluir",label:"excluir",formatter:formatExclui}, + {label:"salvar",formatter:formatSalva}, + {label:"id",key:"id_perfil", formatter:formatTextoId}, + {label:"nome",resizeable:true,key:"perfil", formatter:formatTexto, editor:"textbox"} + ]; + myDataSource = new YAHOO.util.DataSource(dados); + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; + myDataSource.responseSchema = + { + fields: ["id_perfil","perfil"] + }; + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); + // Set up editing flow + myDataTable.highlightEditableCell = function(oArgs) + { + var elCell = oArgs.target; + var column = myDataTable.getColumn(oArgs.target); + if(!YAHOO.lang.isNull(column.editor)) + { + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); + } + }; + myDataTable.unhighlightEditableCell = function(oArgs) + { + var elCell = oArgs.target; + if(elCell.style.cursor="pointer") + { + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); + } + }; + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); + myDataTable.subscribe('cellClickEvent',function(ev) + { + var target = YAHOO.util.Event.getTarget(ev); + var column = this.getColumn(target); + if(YAHOO.example.container.panelCK) + { + YAHOO.example.container.panelCK.destroy(); + YAHOO.example.container.panelCK = null; + } + if (column.key == 'excluir') + { + var record = this.getRecord(target); + excluiLinha(record.getData('id_perfil'),target); + } + else + {this.onEventShowCellEditor(ev);} + }); + // Hook into custom event to customize save-flow of "radio" editor + myDataTable.subscribe("editorUpdateEvent", function(oArgs) + { + if(oArgs.editor.column.key === "active") + { + this.saveCellEditor(); + + } + }); + myDataTable.subscribe("editorBlurEvent", function(oArgs) + { + this.cancelCellEditor(); + }); + }; + core_carregando("desativa"); +} +function gravaLinha(row) +{ + var r = myDataTable.getRecordSet().getRecord(row); + var id_perfil = r.getData("id_perfil"); + var perfil = r.getData("perfil"); + core_carregando("ativa"); + core_carregando(" gravando registro do id= "+id_perfil); + var sUrl = "../php/menutemas.php?funcao=alteraPerfis&perfil="+perfil+"&id="+id_perfil; + var callback = + { + success:function(o) + { + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +function excluiLinha(id,row) +{ + //dialogo + // Define various event handlers for Dialog + var handleYes = function() { + this.hide(); + core_carregando("ativa"); + core_carregando(" excluindo o registro do id= "+id); + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=perfis"; + var callback = + { + success:function(o) + { + try + { + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") + { + core_carregando("Não foi possível excluir. Verifique se não existem itens vinculados a este perfil"); + setTimeout("core_carregando('desativa')",3000) + } + else + { + myDataTable.deleteRow(row); + core_carregando("desativa"); + } + } + catch(e){core_handleFailure(o,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) + }; + var handleNo = function() + { + this.hide(); + }; + var mensagem = "Exclui o registro?"; + var largura = "300" + core_dialogoContinua(handleYes,handleNo,mensagem,largura) +} +YAHOO.util.Event.addListener(window, "load", initMenu); \ No newline at end of file diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index b2ffd87..d55106e 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -120,8 +120,10 @@ switch ($funcao) break; case "alteraPerfis": - $cp->set_data(alteraPerfis()); - $cp->return_data(); + $novo = alteraPerfis(); + $sql = "SELECT * from i3geoadmin_perfis WHERE id_perfil = '".$novo."'"; + retornaJSON(pegaDados($sql)); + exit; break; case "excluirRegistro": @@ -139,7 +141,12 @@ switch ($funcao) if($tabela == "tags") {excluiTagTemas($id);$tabela = "i3geoadmin_tags";$coluna = "id_tag";} if($tabela == "perfis") - {excluiPerfil($perfil);$tabela = "i3geoadmin_perfis";$coluna = "perfil";} + { + $tabela = "i3geoadmin_perfis"; + $coluna = "id_perfil"; + if($id != "") + excluiPerfil($id); + } if($tabela == "subgrupos") { $tabela = "i3geoadmin_subgrupos"; @@ -194,53 +201,67 @@ function excluiPerfil($id) require_once("conexao.php"); foreach($dbh->query("select * from i3geoadmin_perfis where perfil = $id") as $row) {$perfil = $row["perfil"];} - foreach($dbh->query("select * from i3geoadmin_mapas") as $row) + $q = $dbh->query("select * from i3geoadmin_mapas"); + foreach($q as $row) { - $ts = $row['perfil_mapa']; + $t = $row['perfil_mapa']; $i = $row['id_mapa']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_mapas SET perfil_mapa = '$ts' WHERE id_mapa = $i"); - } - foreach($dbh->query("select * from i3geoadmin_menus") as $row) + } + $q = $dbh->query("select * from i3geoadmin_menus"); + foreach($q as $row) { - $ts = $row['perfil_menu']; + $t = $row['perfil_menu']; $i = $row['id_menu']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_menus SET perfil_menu = '$ts' WHERE id_menu = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n1") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n1"); + foreach($q as $row) { - $ts = $row['perfil_n1']; + $t = $row['perfil_n1']; $i = $row['id_n1']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n1 SET perfil_n1 = '$ts' WHERE id_n1 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n2") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n2"); + foreach($q as $row) { - $ts = $row['perfil_n2']; + $t = $row['perfil_n2']; $i = $row['id_n2']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n2 SET perfil_n2 = '$ts' WHERE id_n2 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n3") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n3"); + foreach($q as $row) { - $ts = $row['perfil_n3']; + $t = $row['perfil_n3']; $i = $row['id_n3']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n3 SET perfil_n3 = '$ts' WHERE id_n3 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_raiz") as $row) + } + $q = $dbh->query("select * from i3geoadmin_raiz"); + foreach($q as $row) { - $ts = $row['perfil']; + $t = $row['perfil']; $i = $row['id_raiz']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_raiz SET perfil = '$ts' WHERE id_raiz = $i"); } - foreach($dbh->query("select * from i3geoadmin_sistemasf") as $row) + $q = $dbh->query("select * from i3geoadmin_sistemasf"); + foreach($q as $row) { - $ts = $row['perfil_funcao']; + $t = $row['perfil_funcao']; $i = $row['id_funcao']; - $ts = str_replace($perfil,"",$ts); + $ts = str_replace($perfil,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemasf SET perfil_funcao = '$ts' WHERE id_funcao = $i"); } } @@ -390,6 +411,7 @@ function alteraPerfis() { $dbh = ""; include("conexao.php"); + $retorna = ""; if($id != "") { $original = ""; @@ -398,69 +420,92 @@ function alteraPerfis() $dbhw->query("UPDATE i3geoadmin_perfis SET perfil = '$perfil' WHERE id_perfil = $id"); if($original != "") { - foreach($dbh->query("select * from i3geoadmin_mapas") as $row) + $q = $dbh->query("select * from i3geoadmin_mapas"); + foreach($q as $row) { - $ts = $row['perfil_mapa']; + $t = $row['perfil_mapa']; $i = $row['id_mapa']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_mapas SET perfil_mapa = '$ts' WHERE id_mapa = $i"); - } - foreach($dbh->query("select * from i3geoadmin_menus") as $row) + } + $q = $dbh->query("select * from i3geoadmin_menus"); + foreach($q as $row) { - $ts = $row['perfil_menu']; + $t = $row['perfil_menu']; $i = $row['id_menu']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_menus SET perfil_menu = '$ts' WHERE id_menu = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n1") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n1"); + foreach($q as $row) { - $ts = $row['perfil_n1']; + $t = $row['perfil_n1']; $i = $row['id_n1']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n1 SET perfil_n1 = '$ts' WHERE id_n1 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n2") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n2"); + foreach($q as $row) { - $ts = $row['perfil_n2']; + $t = $row['perfil_n2']; $i = $row['id_n2']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n2 SET perfil_n2 = '$ts' WHERE id_n2 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_n3") as $row) + } + $q = $dbh->query("select * from i3geoadmin_n3"); + foreach($q as $row) { - $ts = $row['perfil_n3']; + $t = $row['perfil_n3']; $i = $row['id_n3']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n3 SET perfil_n3 = '$ts' WHERE id_n3 = $i"); - } - foreach($dbh->query("select * from i3geoadmin_raiz") as $row) + } + $q = $dbh->query("select * from i3geoadmin_raiz"); + foreach($q as $row) { - $ts = $row['perfil']; + $t = $row['perfil']; $i = $row['id_raiz']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_raiz SET perfil = '$ts' WHERE id_raiz = $i"); - } - foreach($dbh->query("select * from i3geoadmin_sistemas") as $row) + } + $q = $dbh->query("select * from i3geoadmin_sistemas"); + foreach($q as $row) { - $ts = $row['perfil_sistema']; + $t = $row['perfil_sistema']; $i = $row['id_sistema']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemas SET perfil_sistema = '$ts' WHERE id_sistema = $i"); } - foreach($dbh->query("select * from i3geoadmin_sistemasf") as $row) + $q = $dbh->query("select * from i3geoadmin_sistemasf"); + foreach($q as $row) { - $ts = $row['perfil_funcao']; + $t = $row['perfil_funcao']; $i = $row['id_funcao']; - $ts = str_replace($original,$perfil,$ts); + $ts = str_replace($original,$perfil,$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemasf SET perfil_funcao = '$ts' WHERE id_funcao = $i"); } } + $retorna = "ok"; } else - $dbhw->query("INSERT INTO i3geoadmin_perfis (perfil) VALUES ('$perfil')"); + { + $dbhw->query("INSERT INTO i3geoadmin_perfis (perfil) VALUES ('$perfil')"); + $id = $dbh->query("SELECT * FROM i3geoadmin_perfis"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_perfil']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { diff --git a/menutemas/admin.db b/menutemas/admin.db index f8b3b40..a670691 100644 Binary files a/menutemas/admin.db and b/menutemas/admin.db differ -- libgit2 0.21.2