forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.9 KiB
92 lines
3.9 KiB
<?php |
|
|
|
/** |
|
* Conexao com banco de dados |
|
*/ |
|
//coloca o focus no campo login |
|
$setFocus = "document.getElementById('senhaAtu').focus();"; |
|
$agenteLogado = GetLogin() . "-" . GetMatricula(); |
|
$smarty->assign("agenteLogado", $agenteLogado); |
|
$smarty->assign("msgSenha", GetMsgSenha()); |
|
$nomeTpl = 'seguranca/trocaSenha.tpl'; |
|
$tpLayout = $_SESSION[SS_SENHA_DEF] ? 0 : 1; |
|
$idProg = 16; |
|
|
|
if (!isset($_POST["senhaAtu"])) { |
|
$jsStartup[] = $setFocus; |
|
GetTemplate($smarty, $nomeTpl); // or $siteError->GetPhpError("Autentica Usuario", "", "Erro ao chamar funcao smarty!"); |
|
} else { |
|
|
|
$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; |
|
} |
|
} |
|
GetTemplate($smarty, $nomeTpl); |
|
} |
|
|
|
/** |
|
* Captura tela de login |
|
*/ |
|
// $jsJQuery[] = "\$('#senhaNova').keyup(function(){somenteNumeros(this);}) "; |
|
// $jsJQuery[] = "\$('#senhaConf').keyup(function(){somenteNumeros(this);}) "; |
|
function Novateste() { |
|
return true; |
|
} |
|
|
|
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); |
|
$result = pg_fetch_assoc($return); |
|
|
|
if(!$result['count']){ |
|
$query = "INSERT INTO pbx_usuarios_senha (id_usuario, senha) VALUES('$idUser', md5('$senha') );"; |
|
if(pg_query($dbcon, $query)){ |
|
return false; |
|
} |
|
} |
|
return true; |
|
} |
|
|
|
?>
|
|
|