Browse Source

Testar resultado do sql da senha atual. Verificar se a senha atual é válida

master
bruno 12 months ago
parent
commit
09d0a41753
  1. 128
      seguranca/trocaSenha.php

128
seguranca/trocaSenha.php

@ -12,59 +12,75 @@ $nomeTpl = 'seguranca/trocaSenha.tpl';
$tpLayout = $_SESSION[SS_SENHA_DEF] ? 0 : 1;
$idProg = 16;
if (!isset($_POST["senhaAtu"])) {
/* Mostrar formulário sem dados para manipular */
if ( viewFormTrocaSenha() ) {
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl); // or $siteError->GetPhpError("Autentica Usuario", "", "Erro ao chamar funcao smarty!");
} else {
GetTemplate($smarty, $nomeTpl);
return;
}
$login = substr(GetLogin(), 0, 20);
$senha = (substr($_POST["senhaAtu"], 0, 14));
$match = preg_match_all('/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$*&@#_!.%?])[0-9a-zA-Z$*&@#_!.%?]{8,}$/', $_POST["senhaNova"]);
if (empty($_POST["senhaNova"]) || !$match) {
$jsStartup[] = "alert('A senha informada inválida, verifique as \"Especificações de Senha\"!');";
$jsStartup[] = $setFocus;
} else if ($_POST["senhaNova"] != $_POST["senhaConf"]) {
$jsStartup[] = "alert('As senhas informadas não conferem!');";
$jsStartup[] = $setFocus;
} else {
$result = pg_query($dbcon, "select id from pbx_usuarios where check_vl = md5(lower('$login')) and senha = md5('$senha') ");
//// or //$siteError->GetPhpError("Autentica Usuario", "Não foi possível autenticar o usuário: " .$_POST["loginUser"]);
$row = pg_fetch_row($result); // or $siteError->GetPhpError("Autentica Usuario", "def", "Erro ao buscar resultado do banco na autenticacao de usuario.");
$paswdInUsed = historyPassword($dbcon, $row[0], $_POST["senhaNova"]);
if (!empty($row[0]) && !$paswdInUsed) {
$idUser = $row[0];
$senha = $_POST["senhaNova"];
$query = "update pbx_usuarios set senha = md5('$senha'), def_senha = 0, senha_ult_atualiza = CURRENT_DATE where id = $idUser; ";
$result = pg_query($dbcon, $query);
//// or //$siteError->GetPhpError("Autentica Usuario", "Não foi possível autenticar o usuário: " .$_POST["loginUser"]);
if ($result) {
if ($_SESSION[SS_SENHA_DEF]) {
$_SESSION[SS_SENHA_DEF] = 0;
@header("Location: index.php?idProg=" . $_SESSION["SS_OLD_ID"]);
exit;
}
$jsStartup[] = "alert('Senha alterada com Sucesso');";
$GLOBALS["jsStartup"][] = "window.close();";
} else
$jsStartup[] = "alert('Não foi possível alterar a senha');";
$jsStartup[] = $setFocus;
//registra o login corrente para registrar log de erros do usuario
//$siteError->SetLogin(GetLogin());
} else {
// if(!$siteError->GetNumError())
$jsStartup[] = "alert('Usuário/Senha inválidos ou já foi utilizada recentemente!');";
$jsStartup[] = $setFocus;
}
}
/* verifica se as especificações da senha */
if ( protocolNewPassword( $_POST["senhaNova"] ) == false ) {
$jsStartup[] = "alert('A senha informada inválida, verifique as \"Especificações de Senha\"!');";
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl);
return;
} else if ($_POST["senhaNova"] != $_POST["senhaConf"]) {
$jsStartup[] = "alert('As senhas informadas não conferem!');";
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl);
return;
}
$login = substr(GetLogin(), 0, 20);
$senha = (substr($_POST["senhaAtu"], 0, 14));
/* verifica a senha atual é correta */
$result = pg_query($dbcon, "select id from pbx_usuarios where check_vl = md5(lower('$login')) and senha = md5('$senha') ");
$row = pg_fetch_row($result);
if(empty($row[0])){
$jsStartup[] = "alert('Senha atual inválida');";
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl);
return;
}
/* Verifica se essa senha já foi usada */
if( historyPassword($dbcon, $row[0], $_POST["senhaNova"])) {
$jsStartup[] = "alert('Usuário/Senha inválidos ou já foi utilizada recentemente!');";
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl);
return;
}
$idUser = $row[0];
$senha = $_POST["senhaNova"];
/* Update senha do usuário */
$query = "update pbx_usuarios set senha = md5('$senha'), def_senha = 0, senha_ult_atualiza = CURRENT_DATE where id = $idUser; ";
$result = pg_query($dbcon, $query);
if ($result) {
if ($_SESSION[SS_SENHA_DEF]) {
$_SESSION[SS_SENHA_DEF] = 0;
@header("Location: index.php?idProg=" . $_SESSION["SS_OLD_ID"]);
exit;
}
$jsStartup[] = "alert('Senha alterada com Sucesso');";
$GLOBALS["jsStartup"][] = "window.close();";
} else {
$jsStartup[] = "alert('Não foi possível alterar a senha');";
$jsStartup[] = $setFocus;
}
GetTemplate($smarty, $nomeTpl);
return;
/**
* Captura tela de login
*/
@ -75,6 +91,7 @@ function Novateste() {
}
function historyPassword($dbcon, $idUser, $senha){
$datareg = date('Y-m-d', strtotime('-6 month'));
$query = "SELECT count(*) FROM pbx_usuarios_senha WHERE id_usuario = '$idUser' AND senha = md5('$senha') AND data_reg >= '$datareg'";
$return = pg_query($dbcon, $query);
@ -89,4 +106,19 @@ function historyPassword($dbcon, $idUser, $senha){
return true;
}
function viewFormTrocaSenha(){
return !isset($_POST["senhaAtu"]) ? true : false;
}
function protocolNewPassword( $password ){
$match = preg_match_all('/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$*&@#_!.%?])[0-9a-zA-Z$*&@#_!.%?]{8,}$/', $password);
return $match;
}
?>

Loading…
Cancel
Save