PABX da Simples IP
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.
 
 
 
 
 
 

124 lines
3.5 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;
/* Mostrar formulário sem dados para manipular */
if ( viewFormTrocaSenha() ) {
$jsStartup[] = $setFocus;
GetTemplate($smarty, $nomeTpl);
return;
}
/* 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
*/
// $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;
}
?>