forked from bruno/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.
253 lines
9.2 KiB
253 lines
9.2 KiB
<?php |
|
$desabilitaLayout = 1; |
|
$smarty->assign("desabilitaLayout", $desabilitaLayout); |
|
$renderizarPagina = true; |
|
include "login/api_banner.php"; |
|
include "util/funcoesLicenca.php"; |
|
|
|
$tentativaErro = 5; |
|
|
|
if (isset($_POST['btLogin'])) { |
|
$login = strtolower(substr($_POST["loginUser"], 0, 50)); |
|
$senha = substr($_POST["loginPass"], 0, 14); |
|
|
|
$validaTentativa = countTentativas($dbcon, $login, $tentativaErro); |
|
|
|
if (($validaTentativa == false) && ($_POST["loginUser"] != 'admin')) { |
|
echo "<script> confirm('Seu acesso foi bloqueado por inúmeras tentativas de acesso inválidos! Para o desbloqueio, realize a alteração de senha ou consulte seu Administrador.');</script>"; |
|
echo "<script> window.location.href = '/index.php';</script>"; |
|
} else if (!validarLicenca($dbcon) && ($_POST["loginUser"] != 'admin')) { |
|
echo "<script> confirm('Sua licença é inválida por favor entre em contato com o suporte da Simples IP para ativar sua central!'); </script>"; |
|
echo "<script> window.location.href = '/index.php'; </script>"; |
|
} |
|
|
|
$query = "select id, nome, apelido, matricula, |
|
case when((select count(*) |
|
from pbx_grupo_usuario a, pbx_grupo_funcoes b, pbx_funcoes c |
|
where b.gp_id = a.gp_id |
|
and c.fun_id = b.fun_id |
|
and a.user_id = u.id |
|
and c.fun_nome = 'mnSupervisor') > 0)then 1 else 0 end as supervisor, |
|
cast( admin as int) as admin, case when(agente = true)then 1 else 0 end as agente, |
|
def_senha, |
|
senha_expira, senha_dias_expira, |
|
senha_ult_atualiza, |
|
senha_ult_atualiza + senha_dias_expira as senha_dt_expira, |
|
case when((senha_ult_atualiza + senha_dias_expira) < CURRENT_DATE)then 1 else 0 end as senha_expirada, |
|
penalidade, senha, termo_uso_privacidade |
|
from pbx_usuarios u |
|
where (u.check_vl = md5(%s) OR email = %s) |
|
and coalesce(status, true) = true |
|
and coalesce(delete_,0) = 0 "; |
|
|
|
$query = sprintf($query, QuotedStr($login), QuotedStr($login)); |
|
$result = pg_query($dbcon, $query); |
|
|
|
// Autentica usuário // |
|
$senhaIsValid = false; |
|
if ($result) { |
|
$row = pg_fetch_array($result); |
|
$senhaUser = $row['senha']; |
|
$senhaLogin = md5($senha); |
|
$senhaIsValid = $senhaUser == $senhaLogin; |
|
} |
|
|
|
if ($senhaIsValid && RegistraAcesso($row['apelido'], $row['id'])) { |
|
$_SESSION["SSTimeOut"] = time(); |
|
$_SESSION["SSlogin"] = $row['apelido']; |
|
$_SESSION["SSnomeUser"] = $row['nome']; |
|
$_SESSION["SSidUser"] = $row['id']; |
|
$_SESSION["SSmatriculaUser"] = $row['matricula']; |
|
$_SESSION["SSsuper"] = $row['supervisor']; |
|
$_SESSION["SSadmin"] = '0'; //$row['admin']; |
|
$_SESSION["SSagente"] = '0'; //$row['agente']; |
|
$_SESSION["SSagentePenalidade"] = $row['penalidade']; |
|
$_SESSION["SSaut"] = "OK"; |
|
$_SESSION[SS_SENHA_DEF] = $row["def_senha"]; |
|
$_SESSION["SSTermoUsoPrivacidade"] = $row["termo_uso_privacidade"]; |
|
|
|
//registra o login corrente para registrar log de erros do usuario |
|
// $siteError->SetLogin($row['apelido']); |
|
//parametros do sistema |
|
GetParametros($dbcon); |
|
|
|
//armazenha informacoes para relatórios de pabx em base diversa |
|
SetDefaultSite($dbcon); |
|
|
|
SetHosts($dbcon); |
|
|
|
// SetSupervisorAcesso($dbcon); Desativaro era usado para identificar se o superfivor tem acesso nas filas ativas e receptiva. |
|
SetAgente($dbcon); |
|
|
|
// Modo de atendimento default |
|
SetModuAtendimentoDefault(); |
|
|
|
// caminhos para gravar arquivos |
|
GetCofigPadrao($dbcon); |
|
|
|
/* |
|
* expiracao de senha |
|
*/ |
|
if ($row["senha_expira"]) { |
|
$dataNow = date('Y-m-d'); |
|
|
|
if (!IsAdmin() && $row["senha_dias_expira"] > 0 && (strtotime($dataNow) >= strtotime($row["senha_ult_atualiza"] . "+{$row["senha_dias_expira"]} days"))) { |
|
$query = "UPDATE pbx_usuarios SET def_senha = '1' WHERE apelido = '{$row['apelido']}' AND id = {$row['id']};"; |
|
$result = pg_query($dbcon, $query); |
|
} |
|
|
|
$_SESSION[SS_EXPIRA_SENHA] = 1; |
|
$_SESSION[SS_PRM_SENHA_EXPIRADA] = $row["senha_expirada"]; |
|
$_SESSION[SS_PRM_SENHA_DT_EXP] = $row["senha_dt_expira"]; |
|
$_SESSION[SS_PRM_SENHA_ULT_ATU] = $row["senha_ult_atualiza"]; |
|
$_SESSION[SS_PRM_SENHA_DIAS_EXP] = $row["senha_dias_expira"]; |
|
} |
|
|
|
/* |
|
* Informações sobre dac padrao |
|
*/ |
|
if (true) { |
|
$dacParao = GetDacPadraoAgente($dbcon, false); |
|
$_SESSION[SS_DAC_PADRAO] = $dacParao; |
|
} |
|
|
|
|
|
/* |
|
* Vefifica Registros que precisam esta incluidos no banco de dados |
|
*/ |
|
VerificaDefaults($dbcon); |
|
/* |
|
* Captura a resolução do computador cliente. |
|
*/ |
|
$w = $_REQUEST['screenW']; |
|
$h = $_REQUEST['screenH']; |
|
|
|
/* |
|
* Largura do site. |
|
*/ |
|
$tbLayoutW = $_REQUEST['tbLayout']; |
|
SetResScreen($w, $h, $tbLayoutW); |
|
} else { |
|
RegistraAcesso($_POST["loginUser"], ($row['id'] ? $row['id'] : '0'), '1'); |
|
GravaFull(0, '', 'Tentativa de login inválido', $_POST["loginUser"]); |
|
$_SESSION["SSaut"] = "er"; |
|
echo '<script> alert("Usuário ou senha inválida!"); |
|
</script>'; |
|
} |
|
|
|
if (isset($_POST['btLogin']) && $_SESSION["SSaut"] === "OK") { |
|
$desabilitaLayout = null; |
|
$smarty->assign("desabilitaLayout", $desabilitaLayout); |
|
header('Location: ' . $_SERVER['PHP_SELF'] . '?idProg=' . $idProg); |
|
} |
|
} |
|
|
|
|
|
function countTentativas($dbcon, $login, $tentativaErro) |
|
{ |
|
$boll_return=true; |
|
|
|
// Use pg_prepare para preparar a consulta com um marcador de posição |
|
$query = "SELECT COUNT(*) AS tentativas FROM pbx_controle_acesso WHERE acs_login = $1 AND acs_data_ini::DATE = CURRENT_DATE AND acs_erro = 0;"; |
|
|
|
// Prepara a consulta |
|
$stmt = pg_prepare($dbcon, "count_query", $query); |
|
|
|
// Executa a consulta com o valor do marcador de posição |
|
$result = pg_execute($dbcon, "count_query", array($login)); |
|
|
|
$res = pg_fetch_assoc($result); |
|
|
|
if ($res['tentativas'] >= $tentativaErro) { |
|
$boll_return = false; |
|
} |
|
return $boll_return; |
|
} |
|
|
|
function ValidaRecuperaSenha($dbcon) |
|
{ |
|
$query = "select hosts, usuario, senha, porta from pbx_confmail;"; |
|
$result = pg_query($dbcon, $query); |
|
$res = pg_fetch_assoc($result); |
|
return ($res ? true : false); |
|
} |
|
|
|
?> |
|
|
|
<?php |
|
|
|
if($renderizarPagina && (!$_GET['action'])){ |
|
?> |
|
<!DOCTYPE html> |
|
|
|
<html> |
|
|
|
<head> |
|
|
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title> |
|
SimplesIp Login |
|
</title> |
|
<style> |
|
<?php |
|
include 'css/login.css'; |
|
include "components/Footer/footer.css"; |
|
?> |
|
</style> |
|
<link rel="icon" href="img/FOOTER_SIMPLES_IP.png" type="image/png"> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> |
|
|
|
</head> |
|
|
|
<body> |
|
<div class="container-home"> |
|
<div class="container-login"> |
|
<div class="login-content"> |
|
<div class="left"> |
|
<img src=<?php echo $imagem; ?> alt= <?php echo $urlImagem ?>/> |
|
</div> |
|
<div class="right"> |
|
<div class="right-content"> |
|
<h1>Bem Vindo</h1> |
|
<h2>login</h2> |
|
<form id="formulario-login" method="post" accept-charset="utf-8" action="index.php"> |
|
<div class="user"> |
|
<i class="fa-solid fa-user"></i> |
|
<input placeholder="Insira seu email ou usuário" type="text" maxlength="50" name="loginUser" id="loginUser" /> |
|
</div> |
|
<div class="password"> |
|
<i class="fa-solid fa-key"></i> |
|
<input type="password" placeholder="Insira sua senha" maxlength="14" name="loginPass" id="loginPass" /> |
|
</div> |
|
<div class="esqueci-senha"> |
|
<a href="index.php?action=recovery_password">Recuperar senha</a> |
|
</div> |
|
</div> |
|
<div class='bn-login'> |
|
<input type="submit" name="btLogin" value="Entrar" id="btLogon" class="bn632-hover bn24" /> |
|
</form> |
|
</div> |
|
<?php include "components/Sociais/sociais.php"; ?> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<?php include "components/Footer/footer.php"; ?> |
|
<script> |
|
document.addEventListener('DOMContentLoaded', function() { |
|
// Aguarde até que o DOM esteja completamente carregado |
|
document.getElementById('loginUser').focus(); |
|
}); |
|
</script> |
|
<?php |
|
}else{ |
|
$renderizarPagina = false; |
|
$desabilitaLayout = null; |
|
$smarty->assign("desabilitaLayout", $desabilitaLayout); |
|
?> |
|
<?php |
|
} |
|
?> |
|
</body> |
|
</html>
|