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.

248 lines
9.0 KiB

<?php
$desabilitaLayout = 1;
$smarty->assign("desabilitaLayout", $desabilitaLayout);
include "login/api_banner.php";
include "util/funcoesLicenca.php";
$tentativaErro = 5;
if (!isset($_POST['btLogin'])) {
echo "<script> </script>";
} else {
$login = strtolower(substr($_POST["loginUser"], 0, 50));
// $login = isset($_POST['loginUser']) ? strtolower(substr($_POST['loginUser'], 0, 50)) : '';
// $senha = isset($_POST['loginPass']) ? substr($_POST['loginPass'], 0, 14) : '';
$senha = substr($_POST["loginPass"], 0, 14);
$validaTentativa = countTentativas($dbcon, $login, $tentativaErro);
if (!$validaTentativa && ($_POST["loginUser"] != 'admin')) {
$jsStartup[] = "alert('Seu acesso foi bloqueado por in<EFBFBD>meras tentativas de acesso inv<EFBFBD>lidos! Para o desbloqueio, realize a altera<EFBFBD><EFBFBD>o de senha ou consulte seu Administrador.');";
return;
} else if (!validarLicenca($dbcon) && ($_POST["loginUser"] != 'admin')) {
$jsStartup[] = "alert('Sua licen<EFBFBD>a <EFBFBD> inv<EFBFBD>lida por favor entre em contato com o suporte da Simples IP para ativar sua central!');";
return;
}
$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<EFBFBD>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<EFBFBD>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<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>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<EFBFBD>lido', $_POST["loginUser"]);
$_SESSION["SSaut"] = "er";
echo '<script> alert("Usu<EFBFBD>rio ou senha inv<EFBFBD>lida!");</script>';
}
if (isset($_POST['btLogin']) && $_SESSION["SSaut"] === "OK") {
$desabilitaLayout = null;
$smarty->assign("desabilitaLayout", $desabilitaLayout);
header('Location: ' . $_SERVER['PHP_SELF']);
}
}
function countTentativas($dbcon, $login, $tentativaErro)
{
$login = addslashes($login);
$query = "SELECT COUNT(*) AS tentativas FROM pbx_controle_acesso WHERE acs_login = '$login' AND acs_data_ini::DATE = 'now' AND acs_erro = 1;";
$result = pg_query($dbcon, $query);
$res = pg_fetch_assoc($result);
if ($res['tentativas'] == $tentativaErro) {
return false;
}
return true;
}
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
$renderizarPagina = true;
if($renderizarPagina && ($_GET['action'] != 'recovery_password')){
?>
<!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="Pessoa ao telefone" />
</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<EFBFBD>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">Esqueci minha 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<EFBFBD> que o DOM esteja completamente carregado
document.getElementById('loginUser').focus();
});
</script>
<?php
}else{
$desabilitaLayout = null;
$smarty->assign("desabilitaLayout", $desabilitaLayout);
?>
<?php
}
?>
</body>
</html>