assign("desabilitaLayout", $desabilitaLayout); include "login/api_banner.php"; include "util/funcoesLicenca.php"; $tentativaErro = 5; if (!isset($_POST['btLogin'])) { echo ""; } 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úmeras tentativas de acesso inválidos! Para o desbloqueio, realize a alteração de senha ou consulte seu Administrador.');"; return; } else if (!validarLicenca($dbcon) && ($_POST["loginUser"] != 'admin')) { $jsStartup[] = "alert('Sua licença é invá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á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 ''; } if (isset($_POST['btLogin']) && $_SESSION["SSaut"] === "OK") { 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); } ?> SimplesIp Login