|
|
|
|
<?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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Mostrar formul<EFBFBD>rio sem dados para manipular */
|
|
|
|
|
if ( viewFormTrocaSenha() ) {
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* verifica se as especifica<EFBFBD><EFBFBD>es da senha */
|
|
|
|
|
if ( protocolNewPassword( $_POST["senhaNova"] ) == false ) {
|
|
|
|
|
$jsStartup[] = "alert('A senha informada inv<EFBFBD>lida, verifique as \"Especifica<EFBFBD><EFBFBD>es de Senha\"!');";
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
} else if ($_POST["senhaNova"] != $_POST["senhaConf"]) {
|
|
|
|
|
$jsStartup[] = "alert('As senhas informadas n<EFBFBD>o conferem!');";
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$login = substr(GetLogin(), 0, 20);
|
|
|
|
|
$senha = (substr($_POST["senhaAtu"], 0, 14));
|
|
|
|
|
|
|
|
|
|
/* verifica a senha atual <EFBFBD> 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<EFBFBD>lida');";
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Verifica se essa senha j<EFBFBD> foi usada */
|
|
|
|
|
if( historyPassword($dbcon, $row[0], $_POST["senhaNova"])) {
|
|
|
|
|
$jsStartup[] = "alert('Usu<EFBFBD>rio/Senha inv<EFBFBD>lidos ou j<EFBFBD> foi utilizada recentemente!');";
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$idUser = $row[0];
|
|
|
|
|
$senha = $_POST["senhaNova"];
|
|
|
|
|
|
|
|
|
|
/* Update senha do usu<EFBFBD>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<EFBFBD>o foi poss<EFBFBD>vel alterar a senha');";
|
|
|
|
|
$jsStartup[] = $setFocus;
|
|
|
|
|
}
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
?>
|