Commit 9c232e1288b9d84af75e1d20cf7add7a9b5bb9bd

Authored by Edmar Moretti
1 parent 0fa6e86d

Substituição da função md5 por função específica do php para tratamento de senhas

admin/admin.db
No preview for this file type
admin/php/login.php
... ... @@ -289,6 +289,7 @@ function validaSessao(){
289 289 function autenticaUsuario($usuario,$senha){
290 290 include(dirname(__FILE__)."/conexao.php");
291 291 $senhamd5 = md5($senha);
  292 + $senhaHash = password_hash($senha, PASSWORD_DEFAULT);
292 293 //verifica se o usuario esta cadastrado no ms_configura.php em $i3geomaster
293 294 //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit;
294 295 //exit;
... ... @@ -320,13 +321,29 @@ function autenticaUsuario($usuario,$senha){
320 321 }
321 322 else{
322 323 //verifica se a senha e uma string ou pode ser um md5
  324 + $ok = false;
  325 + $dados = array();
323 326 if(strlen($senha) == 32){
324   - $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and senha = '$senhamd5' and ativo = 1",$dbh,false);
  327 + $dados = pegaDados("select id_usuario,nome_usuario from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and senha = '$senhamd5' and ativo = 1",$dbh,false);
325 328 }
326 329 else{
327   - $dados = pegaDados("select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1",$dbh,false);
  330 + $dados = pegaDados("select id_usuario,nome_usuario from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1",$dbh,false);
328 331 }
329 332 if(count($dados) > 0){
  333 + $ok = true;
  334 + }
  335 + //testa tambem com a nova forma de armazenamento de senha usando password_hash
  336 + if($ok == false){
  337 + $usuarios = pegaDados("select senha,id_usuario,nome_usuario from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and ativo = 1",$dbh,false);
  338 + foreach($usuarios as $d){
  339 + if (password_verify($d["senha"], $senhaHash)){
  340 + $ok = true;
  341 + $dados = array("id_usuario"=>$d["id_usuario"],"nome_usuario"=>$d["nome_usuario"]);
  342 + }
  343 + }
  344 + $usuarios = null;
  345 + }
  346 + if($ok == true){
330 347 $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$dbh,false);
331 348 $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"],$dbh,false);
332 349 $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupousuario where id_usuario = ".$dados[0]["id_usuario"],$dbh,false);
... ...
admin/php/usuarios.php
... ... @@ -65,7 +65,13 @@ error_reporting(0);
65 65 include_once(dirname(__FILE__)."/login.php");
66 66 $funcoesEdicao = array(
67 67 "ALTERARUSUARIOS",
68   - "EXCLUIRUSUARIO"
  68 + "EXCLUIRUSUARIO",
  69 + "EXCLUIRPAPELUSUARIO",
  70 + "PEGADADOSUSUARIO",
  71 + "PEGAUSUARIOS",
  72 + "PEGAPAPEISUSUARIO",
  73 + "ENVIARSENHAEMAIL",
  74 + "LISTAPAPEIS"
69 75 );
70 76 if(in_array(strtoupper($funcao),$funcoesEdicao)){
71 77 if(verificaOperacaoSessao("admin/html/usuarios") == false){
... ... @@ -180,7 +186,8 @@ function alterarUsuarios()
180 186 );
181 187 //se a senha foi enviada, ela sera trocada
182 188 if($_GET["senha"] != ""){
183   - $dataCol["senha"] = md5($_GET["senha"]);
  189 + //$dataCol["senha"] = md5($_GET["senha"]);
  190 + $dataCol["senha"] = password_hash($_GET["senha"], PASSWORD_DEFAULT);
184 191 }
185 192 i3GeoAdminUpdate($dbhw,"i3geousr_usuarios",$dataCol,"WHERE id_usuario = $id_usuario");
186 193 $retorna = $id_usuario;
... ...
admin1/usuarios/cadastro/exec.php
... ... @@ -204,7 +204,8 @@ function alterar($id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usua
204 204 );
205 205 // se a senha foi enviada, ela sera trocada
206 206 if ($senha != "") {
207   - $dataCol ["senha"] = md5 ( $senha );
  207 + //$dataCol ["senha"] = md5 ( $senha );
  208 + $dataCol["senha"] = password_hash($_GET["senha"], PASSWORD_DEFAULT);
208 209 }
209 210 $resultado = i3GeoAdminUpdate ( $dbhw, "i3geousr_usuarios", $dataCol, "WHERE id_usuario = $id_usuario" );
210 211 if ($resultado === false) {
... ...
admin1/usuarios/operacoes/exec.php
... ... @@ -105,7 +105,13 @@ switch ($funcao)
105 105 exit;
106 106 }
107 107 $operacao = $operacoes[0];
108   - $operacao["papeis"] = $papeisoperacao[0];
  108 +
  109 + //cria o indice do array conforme o id da operacao
  110 + $o = array();
  111 + foreach($papeisoperacao as $op){
  112 + $o[$op["id_papel"]] = $op;
  113 + }
  114 + $operacao["papeis"] = $o;
109 115 //todos os papeis
110 116 $papeis = pegaDados("SELECT * from ".$esquemaadmin."i3geousr_papeis order by nome",$dbh);
111 117 $dbhw = null;
... ...
admin1/usuarios/operacoes/index.js
... ... @@ -28,6 +28,8 @@ i3GEOadmin.operacoes = {
28 28 ondeLista: "",
29 29 //conteudo html do formulario de adicao de operacao
30 30 formAdiciona: "",
  31 + //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao
  32 + parametrosSalvar: "",
31 33 /*
32 34 Function: initMenu
33 35  
... ... @@ -147,7 +149,7 @@ Obtém a lista de operacoes
147 149 "onSalvar": "i3GEOadmin.operacoes.salvarDialogo",//funcao
148 150 "inputPapeis": function(){
149 151 //marca os checkbox
150   - var p = this.papeis;
  152 + var p = json["operacao"]["papeis"];
151 153 $(json["papeis"]).each(
152 154 function(i,el){
153 155 if(p && el.id_papel && (p[el.id_papel] || el.id_papel == 1)){
... ... @@ -236,35 +238,40 @@ Obtém a lista de operacoes
236 238 );
237 239 },
238 240 salvarDialogo: function(id){
  241 + //os dados do formulario sao obtidos antes de abrir o modal
  242 + i3GEOadmin.operacoes.parametrosSalvar = $("#form-edicao-" + id).serialize();
239 243 var hash = {
240 244 "mensagem": i3GEOadmin.operacoes.dicionario.confirma,
241 245 "onBotao1": "i3GEOadmin.operacoes.salvar('"+id+"')",
242 246 "botao1": i3GEOadmin.operacoes.dicionario.sim,
243   - "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  247 + "onBotao2": "i3GEOadmin.operacoes.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
244 248 "botao2": i3GEOadmin.operacoes.dicionario.nao
245 249 };
246 250 i3GEOadmin.core.abreModalConfirma(hash);
247 251 },
248 252 salvar: function(id){
249   - var parametros = $("#form-" + id + " form").serialize();
  253 + var parametros = i3GEOadmin.operacoes.parametrosSalvar;
  254 + i3GEOadmin.operacoes.parametrosSalvar = "";
250 255 i3GEOadmin.core.fechaModalGeral();
251   - i3GEOadmin.core.modalAguarde(true);
252   - $.post(
253   - "exec.php?funcao=alterar",
254   - "id_operacao="+ id +"&"+parametros
255   - )
256   - .done(
257   - function(data, status){
258   - i3GEOadmin.core.modalAguarde(false);
259   - i3GEOadmin.core.iconeAguarde(i3GEOadmin.operacoes.ondeLista);
260   - i3GEOadmin.operacoes.lista();
261   - }
262   - )
263   - .fail(
264   - function(data){
265   - i3GEOadmin.core.modalAguarde(false);
266   - i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
267   - }
268   - );
  256 + if(parametros != ""){
  257 + i3GEOadmin.core.modalAguarde(true);
  258 + $.post(
  259 + "exec.php?funcao=alterar",
  260 + "id_operacao="+ id +"&"+parametros
  261 + )
  262 + .done(
  263 + function(data, status){
  264 + i3GEOadmin.core.modalAguarde(false);
  265 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.operacoes.ondeLista);
  266 + i3GEOadmin.operacoes.lista();
  267 + }
  268 + )
  269 + .fail(
  270 + function(data){
  271 + i3GEOadmin.core.modalAguarde(false);
  272 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  273 + }
  274 + );
  275 + }
269 276 }
270 277 };
... ...
admin1/usuarios/operacoes/index.php
... ... @@ -57,7 +57,7 @@ include "../../head.php";
57 57 <option value="form-{{id_operacao}}">{{{codigo}}}</option>
58 58 </script>
59 59 <script id="templateFormLista" type="x-tmpl-mustache">
60   -<form style="" action="#" onsubmit="{{onSalvar}}('{{id_operacao}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
  60 +<form id="form-edicao-{{id_operacao}}" style="" action="#" onsubmit="{{onSalvar}}('{{id_operacao}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
61 61 <div class="row">
62 62 <div class="col-md-4" >
63 63 <h4> {{{papeisv}}}</h4>
... ...