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.
 
 
 
 
 
 

267 lines
10 KiB

<?php
$desabilitaLayout = 1;
$smarty->assign("desabilitaLayout", $desabilitaLayout);
$renderizarPagina = true;
include "login/api_banner.php";
include_once "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)
and coalesce(status, true) = true
and coalesce(delete_,0) = 0 ";
//where (u.check_vl = md5(%s) OR email = %s)
//$query = sprintf($query, QuotedStr($login), QuotedStr($login));
$query = sprintf($query, 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"] = $login;
$_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'] ?? 800;
$h = $_REQUEST['screenH'] ?? 600;
/*
* 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>
Acesso de Usuário - Simples IP
</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=<?= $imagem; ?> alt=<?= $urlImagem ?> />
</div>
<div class="right">
<img src="img/FOOTER_SIMPLES_IP.png" alt="Logo SimplesIp">
<?php include "components/Sociais/sociais.php"; ?>
<div class="right-content">
<h4>SEJA MUITO BEM-VINDO!</h4>
<form id="formulario-login" method="post" accept-charset="utf-8" action="index.php">
<div class="group">
<span>Login/Email</span>
<input placeholder="Insira seu email ou login" type="text" maxlength="50" name="loginUser" id="loginUser" />
</div>
<div class="group">
<span>Senha</span>
<input type="password" placeholder="Insira a 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 class='bn-login'>
<input type="submit" name="btLogin" value="ENTRAR &rarr;" id="btLogon" class="bn632-hover bn24" />
</div>
</form>
</div>
<div class="right-content">
<div class="fo-info">
<p>Contato: +55 (65)3616-8280</p>
<p>Email: meajuda@simplesip.com.br</p>
<p>Versão 1.9.1 | Copyright © 2024 simplesip.net.br</p>
</div>
</div>
</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);
} ?>
</body>
</html>