Commit 2c3f5b4a37fd39ad7ae7ad9b649221750769cad5
1 parent
8daba028
Exists in
master
Refatorado verificação de expiração de conta de usuário, incluido lógica para re…
…direcionar requisições, conforme url configurada.
Showing
1 changed file
with
191 additions
and
185 deletions
Show diff stats
ieducar/intranet/include/clsBase.inc.php
... | ... | @@ -25,11 +25,19 @@ |
25 | 25 | * @license @@license@@ |
26 | 26 | * @package iEd_Include |
27 | 27 | * @since Arquivo disponível desde a versão 1.0.0 |
28 | - * @version $Id$ | |
28 | + * @version $Id: clsBase.inc.php 773 2010-12-19 20:46:49Z eriksencosta@gmail.com $ | |
29 | 29 | */ |
30 | 30 | |
31 | 31 | // Inclui arquivo de bootstrapping |
32 | -require_once '../includes/bootstrap.php'; | |
32 | +require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/bootstrap.php'; | |
33 | + | |
34 | +// redireciona requisições, caso configurado | |
35 | +if ($GLOBALS['coreExt']['Config']->app->routes && | |
36 | + $GLOBALS['coreExt']['Config']->app->routes->redirect_to) { | |
37 | + | |
38 | + header('HTTP/1.1 503 Service Temporarily Unavailable'); | |
39 | + header("Location: {$GLOBALS['coreExt']['Config']->app->routes->redirect_to}"); | |
40 | +} | |
33 | 41 | |
34 | 42 | require_once 'include/clsCronometro.inc.php'; |
35 | 43 | require_once 'clsConfigItajai.inc.php'; |
... | ... | @@ -41,6 +49,11 @@ require_once 'include/Geral.inc.php'; |
41 | 49 | require_once 'include/pmicontrolesis/geral.inc.php'; |
42 | 50 | require_once 'include/funcoes.inc.php'; |
43 | 51 | |
52 | +require_once 'lib/Portabilis/Utils/Database.php'; | |
53 | +require_once 'lib/Portabilis/Utils/User.php'; | |
54 | + | |
55 | +require_once 'modules/Error/Mailers/NotificationMailer.php'; | |
56 | + | |
44 | 57 | /** |
45 | 58 | * clsBase class. |
46 | 59 | * |
... | ... | @@ -199,10 +212,6 @@ class clsBase extends clsConfig |
199 | 212 | function VerificaPermicaoNumerico($processo_ap) |
200 | 213 | { |
201 | 214 | if (is_numeric($processo_ap)) { |
202 | - @session_start(); | |
203 | - $id_usuario = $_SESSION['id_pessoa']; | |
204 | - session_write_close(); | |
205 | - | |
206 | 215 | $sempermissao = TRUE; |
207 | 216 | |
208 | 217 | if ($processo_ap == 0) { |
... | ... | @@ -210,11 +219,9 @@ class clsBase extends clsConfig |
210 | 219 | } |
211 | 220 | |
212 | 221 | if ($processo_ap != 0) { |
213 | - $db = new clsBanco(); | |
214 | - | |
215 | - $db->Consulta("SELECT 1 FROM menu_funcionario WHERE ref_cod_menu_submenu = 0 AND ref_ref_cod_pessoa_fj = {$id_usuario}"); | |
216 | - if ($db->ProximoRegistro()) { | |
217 | - list($aui) = $db->Tupla(); | |
222 | + $this->db()->Consulta("SELECT 1 FROM menu_funcionario WHERE ref_cod_menu_submenu = 0 AND ref_ref_cod_pessoa_fj = {$this->_currentUserId()}"); | |
223 | + if ($this->db()->ProximoRegistro()) { | |
224 | + list($aui) = $this->db()->Tupla(); | |
218 | 225 | $sempermissao = FALSE; |
219 | 226 | } |
220 | 227 | |
... | ... | @@ -222,9 +229,9 @@ class clsBase extends clsConfig |
222 | 229 | // permissão de acesso ao processo. Já a segunda, não existe |
223 | 230 | // sentido para nivel = 2 já que processoAp pode ser de níveis |
224 | 231 | // maiores que 2. |
225 | - $db->Consulta("SELECT 1 FROM menu_funcionario WHERE (ref_cod_menu_submenu = {$processo_ap} AND ref_ref_cod_pessoa_fj = {$id_usuario}) OR (SELECT true FROM menu_submenu WHERE cod_menu_submenu = {$processo_ap} AND nivel = 2)"); | |
226 | - if ($db->ProximoRegistro()) { | |
227 | - list($aui) = $db->Tupla(); | |
232 | + $this->db()->Consulta("SELECT 1 FROM menu_funcionario WHERE (ref_cod_menu_submenu = {$processo_ap} AND ref_ref_cod_pessoa_fj = {$this->_currentUserId()}) OR (SELECT true FROM menu_submenu WHERE cod_menu_submenu = {$processo_ap} AND nivel = 2)"); | |
233 | + if ($this->db()->ProximoRegistro()) { | |
234 | + list($aui) = $this->db()->Tupla(); | |
228 | 235 | $sempermissao = FALSE; |
229 | 236 | } |
230 | 237 | |
... | ... | @@ -250,11 +257,11 @@ class clsBase extends clsConfig |
250 | 257 | |
251 | 258 | $variaveis = "POST\n{$posts}GET\n{$gets}SESSION\n{$sessions}"; |
252 | 259 | |
253 | - if ($id_usuario) { | |
254 | - $db->Consulta("INSERT INTO intranet_segur_permissao_negada (ref_ref_cod_pessoa_fj, ip_externo, ip_interno, data_hora, pagina, variaveis) VALUES('$id_usuario', '$ip', '$ip_de_rede', NOW(), '$pagina', '$variaveis')"); | |
260 | + if ($this->_currentUserId()) { | |
261 | + $this->db()->Consulta("INSERT INTO intranet_segur_permissao_negada (ref_ref_cod_pessoa_fj, ip_externo, ip_interno, data_hora, pagina, variaveis) VALUES('{$this->_currentUserId()}', '$ip', '$ip_de_rede', NOW(), '$pagina', '$variaveis')"); | |
255 | 262 | } |
256 | 263 | else { |
257 | - $db->Consulta("INSERT INTO intranet_segur_permissao_negada (ref_ref_cod_pessoa_fj, ip_externo, ip_interno, data_hora, pagina, variaveis) VALUES(NULL, '$ip', '$ip_de_rede', NOW(), '$pagina', '$variaveis')"); | |
264 | + $this->db()->Consulta("INSERT INTO intranet_segur_permissao_negada (ref_ref_cod_pessoa_fj, ip_externo, ip_interno, data_hora, pagina, variaveis) VALUES(NULL, '$ip', '$ip_de_rede', NOW(), '$pagina', '$variaveis')"); | |
258 | 265 | } |
259 | 266 | |
260 | 267 | return FALSE; |
... | ... | @@ -298,35 +305,33 @@ class clsBase extends clsConfig |
298 | 305 | $menu_tutor = ''; |
299 | 306 | |
300 | 307 | if ($this->processoAp) { |
301 | - $db = new clsBanco(); | |
302 | - $menu_atual = $db->UnicoCampo("SELECT ref_cod_menu_menu FROM menu_submenu WHERE cod_menu_submenu = '{$this->processoAp}'"); | |
308 | + $menu_atual = $this->db()->UnicoCampo("SELECT ref_cod_menu_menu FROM menu_submenu WHERE cod_menu_submenu = '{$this->processoAp}'"); | |
303 | 309 | |
304 | 310 | if ($menu_atual) { |
305 | - $db->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$menu_atual}'"); | |
306 | - while ($db->ProximoRegistro()) { | |
307 | - $tupla = $db->Tupla(); | |
311 | + $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$menu_atual}'"); | |
312 | + while ($this->db()->ProximoRegistro()) { | |
313 | + $tupla = $this->db()->Tupla(); | |
308 | 314 | $submenu[] = $tupla['cod_menu_submenu']; |
309 | 315 | } |
310 | 316 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); |
311 | 317 | $where = "ref_cod_menu_submenu = $where"; |
312 | - $menu_tutor = $db->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE $where LIMIT 1 OFFSET 0"); | |
318 | + $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE $where LIMIT 1 OFFSET 0"); | |
313 | 319 | } |
314 | 320 | else { |
315 | 321 | $this->prog_alert .= "O menu pai do processo AP {$this->processoAp} está voltando vazio (cod_menu inexistente?).<br>"; |
316 | 322 | } |
317 | 323 | } |
318 | 324 | elseif ($_SESSION['menu_atual']) { |
319 | - $db = new clsBanco(); | |
320 | - $db->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$_SESSION['menu_atual']}'"); | |
325 | + $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$_SESSION['menu_atual']}'"); | |
321 | 326 | |
322 | - while ($db->ProximoRegistro()) { | |
323 | - $tupla = $db->Tupla(); | |
327 | + while ($this->db()->ProximoRegistro()) { | |
328 | + $tupla = $this->db()->Tupla(); | |
324 | 329 | $submenu[] = $tupla['cod_menu_submenu']; |
325 | 330 | } |
326 | 331 | |
327 | 332 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); |
328 | 333 | $where = "ref_cod_menu_submenu = $where"; |
329 | - $menu_tutor = $db->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE $where LIMIT 1 OFFSET 0"); | |
334 | + $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE $where LIMIT 1 OFFSET 0"); | |
330 | 335 | } |
331 | 336 | |
332 | 337 | if ($menu_tutor) { |
... | ... | @@ -353,15 +358,13 @@ class clsBase extends clsConfig |
353 | 358 | $saida = '<script type="text/javascript">'; |
354 | 359 | $saida .= 'array_menu = new Array(); array_id = new Array();'; |
355 | 360 | |
356 | - $banco = new clsBanco(); | |
357 | 361 | foreach ($lista_menu as $menu_suspenso) { |
358 | 362 | $ico_menu = ''; |
359 | 363 | |
360 | 364 | if (is_numeric($menu_suspenso['ref_cod_ico'])) { |
361 | - $db = new clsBanco(); | |
362 | - $db->Consulta("SELECT caminho FROM portal.imagem WHERE cod_imagem = {$menu_suspenso['ref_cod_ico']} "); | |
363 | - if ($db->ProximoRegistro()) { | |
364 | - list($ico_menu) = $db->Tupla(); | |
365 | + $this->db()->Consulta("SELECT caminho FROM portal.imagem WHERE cod_imagem = {$menu_suspenso['ref_cod_ico']} "); | |
366 | + if ($this->db()->ProximoRegistro()) { | |
367 | + list($ico_menu) = $this->db()->Tupla(); | |
365 | 368 | $ico_menu = "imagens/banco_imagens/$ico_menu"; |
366 | 369 | } |
367 | 370 | } |
... | ... | @@ -540,61 +543,12 @@ class clsBase extends clsConfig |
540 | 543 | |
541 | 544 | $menu_dinamico = $this->makeBanner(); |
542 | 545 | |
543 | - @session_start(); | |
544 | - $id_usuario = $_SESSION['id_pessoa']; | |
545 | - session_write_close(); | |
546 | - $db = new clsBanco(); | |
547 | - | |
548 | - $objPessoa = new clsPessoaFisica(); | |
549 | - list($nome_user) = $objPessoa->queryRapida($id_usuario, "nome"); | |
550 | - | |
551 | - $ultimoAcesso = $db->UnicoCampo("SELECT data_hora FROM acesso WHERE cod_pessoa = $id_usuario ORDER BY data_hora DESC LIMIT 1,1"); | |
552 | - $nome_user = ($nome_user) ? $nome_user : "<span style='color: #DD0000; '>Convidado</span>"; | |
553 | - | |
554 | - if($ultimoAcesso) { | |
555 | - $ultimoAcesso = date("d/m/Y H:i", strtotime(substr($ultimoAcesso,0,19))); | |
556 | - } | |
557 | - | |
558 | - /***********************/ | |
559 | - //Verificar se senha expira dentro de 5 dias. | |
560 | - $expirando = FALSE; | |
561 | - $mensagem_expirar = ''; | |
562 | - $db = new clsBanco(); | |
563 | - $db->Consulta("SELECT tempo_expira_senha, data_troca_senha FROM funcionario WHERE ref_cod_pessoa_fj = '{$id_usuario}' "); | |
564 | - if ($db->ProximoRegistro()) { | |
565 | - list($tempo_senha, $data_senha) = $db->Tupla(); | |
566 | - | |
567 | - if (!empty($tempo_senha) && !empty($data_senha)) { | |
568 | - if (time() - strtotime($data_senha) > ($tempo_senha-10) * 60 * 60 * 24) { | |
569 | - // senha vai expirar dentro de 10 dias | |
570 | - $expirando = TRUE; | |
571 | - $days_left = $tempo_senha - (int)((time() - strtotime( $data_senha )) / 86400); | |
572 | - $mensagem_expirar = "Sua senha expirará em $days_left dias, atualize sua senha em 'Meus dados' no menu 'Principal' !"; | |
573 | - $mensagem_expirar .= "<script>showExpansivelIframe(800, 270, 'troca_senha_pop.php', 1);</script>"; | |
574 | - } | |
575 | - } | |
576 | - } | |
577 | - | |
578 | - // somente para programadores | |
579 | - // @todo Essa linha pode afetar o uso de usuários comuns? | |
580 | - if (($id_usuario == 49659 || $id_usuario == 2151 || $id_usuario == 4637 || $id_usuario == 21330|| $id_usuario == 21317|| $id_usuario == 25109|| $id_usuario == 4702)) { | |
581 | - if($expirando || $this->prog_alert) { | |
582 | - $mensagem = $expirando ? "<b style='color:red'>$mensagem_expirar</b><br />" : ""; | |
583 | - $mensagem .= $this->prog_alert ? $this->prog_alert : ""; | |
584 | - $saida = str_replace("<!-- #&PROG_ALERT&# -->", "<div class=\"prog_alert\" align=\"center\">$mensagem</div>", $saida); | |
585 | - } | |
586 | - } | |
587 | - elseif($expirando) { | |
588 | - $saida = str_replace("<!-- #&PROG_ALERT&# -->", "<div class=\"prog_alert\" align=\"center\" style='color: red; font-weight:bold;'>{$mensagem_expirar}</div>", $saida); | |
589 | - } | |
590 | - | |
591 | 546 | $notificacao = ""; |
592 | - $db = new clsBanco(); | |
593 | - $db->Consulta("SELECT cod_notificacao, titulo, conteudo, url FROM portal.notificacao WHERE ref_cod_funcionario = '{$id_usuario}' AND data_hora_ativa < NOW()"); | |
547 | + $this->db()->Consulta("SELECT cod_notificacao, titulo, conteudo, url FROM portal.notificacao WHERE ref_cod_funcionario = '{$this->_currentUserId()}' AND data_hora_ativa < NOW()"); | |
594 | 548 | |
595 | - if ($db->numLinhas()) { | |
596 | - while ($db->ProximoRegistro()) { | |
597 | - list($cod_notificacao, $titulo, $conteudo, $url) = $db->Tupla(); | |
549 | + if ($this->db()->numLinhas()) { | |
550 | + while ($this->db()->ProximoRegistro()) { | |
551 | + list($cod_notificacao, $titulo, $conteudo, $url) = $this->db()->Tupla(); | |
598 | 552 | |
599 | 553 | $titulo = ($url) ? "<a href=\"{$url}\">{$titulo}</a>": $titulo; |
600 | 554 | |
... | ... | @@ -606,14 +560,29 @@ class clsBase extends clsConfig |
606 | 560 | </div>"; |
607 | 561 | } |
608 | 562 | $saida = str_replace( "<!-- #&NOTIFICACOES&# -->", $notificacao, $saida ); |
609 | - $db->Consulta("UPDATE portal.notificacao SET visualizacoes = visualizacoes + 1 WHERE ref_cod_funcionario = '{$id_usuario}' AND data_hora_ativa < NOW()"); | |
610 | - $db->Consulta("DELETE FROM portal.notificacao WHERE visualizacoes > 10"); | |
563 | + $this->db()->Consulta("UPDATE portal.notificacao SET visualizacoes = visualizacoes + 1 WHERE ref_cod_funcionario = '{$this->_currentUserId()}' AND data_hora_ativa < NOW()"); | |
564 | + $this->db()->Consulta("DELETE FROM portal.notificacao WHERE visualizacoes > 10"); | |
611 | 565 | } |
612 | 566 | |
613 | - $saida = str_replace("<!-- #&ULTIMOACESSO&# -->", $ultimoAcesso, $saida); | |
614 | - $saida = str_replace("<!-- #&USERLOGADO&# -->", $nome_user, $saida); | |
615 | - $saida = str_replace("<!-- #&CORPO&# -->", $corpo, $saida); | |
616 | - $saida = str_replace("<!-- #&ANUNCIO&# -->", $menu_dinamico, $saida); | |
567 | + // nome completo usuario | |
568 | + $nomePessoa = new clsPessoaFisica(); | |
569 | + list($nomePessoa) = $nomePessoa->queryRapida($this->_currentUserId(), "nome"); | |
570 | + $nomePessoa = ($nomePessoa) ? $nomePessoa : "<span style='color: #DD0000; '>Convidado</span>"; | |
571 | + | |
572 | + | |
573 | + // data ultimo acesso | |
574 | + $ultimoAcesso = $this->db()->UnicoCampo("SELECT data_hora FROM acesso WHERE cod_pessoa = {$this->_currentUserId()} ORDER BY data_hora DESC LIMIT 1,1"); | |
575 | + | |
576 | + if($ultimoAcesso) | |
577 | + $ultimoAcesso = date("d/m/Y H:i", strtotime(substr($ultimoAcesso,0,19))); | |
578 | + | |
579 | + $this->checkUserExpirations(); | |
580 | + | |
581 | + // substitui valores no template | |
582 | + $saida = str_replace("<!-- #&ULTIMOACESSO&# -->", $ultimoAcesso, $saida); | |
583 | + $saida = str_replace("<!-- #&USERLOGADO&# -->", $nomePessoa, $saida); | |
584 | + $saida = str_replace("<!-- #&CORPO&# -->", $corpo, $saida); | |
585 | + $saida = str_replace("<!-- #&ANUNCIO&# -->", $menu_dinamico, $saida); | |
617 | 586 | |
618 | 587 | // Pega o endereço IP do host, primeiro com HTTP_X_FORWARDED_FOR (para pegar o IP real |
619 | 588 | // caso o host esteja atrás de um proxy) |
... | ... | @@ -626,9 +595,8 @@ class clsBase extends clsConfig |
626 | 595 | $ip_maquina = $_SERVER['REMOTE_ADDR']; |
627 | 596 | } |
628 | 597 | |
629 | - $sql = "UPDATE funcionario SET ip_logado = '$ip_maquina' , data_login = NOW() WHERE ref_cod_pessoa_fj = {$id_usuario}"; | |
630 | - $db2 = new clsBanco(); | |
631 | - $db2->Consulta($sql); | |
598 | + $sql = "UPDATE funcionario SET ip_logado = '$ip_maquina' , data_login = NOW() WHERE ref_cod_pessoa_fj = {$this->_currentUserId()}"; | |
599 | + $this->db()->Consulta($sql); | |
632 | 600 | |
633 | 601 | return $saida; |
634 | 602 | } |
... | ... | @@ -652,11 +620,10 @@ class clsBase extends clsConfig |
652 | 620 | { |
653 | 621 | $retorno = ''; |
654 | 622 | $listaBanners = array(); |
655 | - $db = new clsBanco(); | |
656 | - $db->Consulta("SELECT caminho, title, prioridade, link FROM portal_banner WHERE lateral=1 ORDER BY prioridade, title"); | |
623 | + $this->db()->Consulta("SELECT caminho, title, prioridade, link FROM portal_banner WHERE lateral=1 ORDER BY prioridade, title"); | |
657 | 624 | |
658 | - while ($db->ProximoRegistro()) { | |
659 | - list($caminho, $title, $prioridade, $link) = $db->Tupla(); | |
625 | + while ($this->db()->ProximoRegistro()) { | |
626 | + list($caminho, $title, $prioridade, $link) = $this->db()->Tupla(); | |
660 | 627 | $listaBanners[] = array("titulo"=>$title, "caminho"=>$caminho, "prioridade"=>$prioridade, "link"=>$link, "controle_inicio"=>0, "controle_fim"=>0); |
661 | 628 | } |
662 | 629 | |
... | ... | @@ -727,111 +694,128 @@ class clsBase extends clsConfig |
727 | 694 | |
728 | 695 | function MakeAll () |
729 | 696 | { |
730 | - $cronometro = new clsCronometro(); | |
731 | - $cronometro->marca('inicio'); | |
732 | - $liberado = TRUE; | |
733 | - | |
734 | - $saida_geral = ''; | |
735 | - | |
736 | - if ($this->convidado) { | |
737 | - @session_start(); | |
738 | - $_SESSION['convidado'] = TRUE; | |
739 | - $_SESSION['id_pessoa'] = '0'; | |
740 | - session_write_close(); | |
741 | - } | |
697 | + try { | |
698 | + $cronometro = new clsCronometro(); | |
699 | + $cronometro->marca('inicio'); | |
700 | + $liberado = TRUE; | |
701 | + | |
702 | + $saida_geral = ''; | |
703 | + | |
704 | + if ($this->convidado) { | |
705 | + @session_start(); | |
706 | + $_SESSION['convidado'] = TRUE; | |
707 | + $_SESSION['id_pessoa'] = '0'; | |
708 | + session_write_close(); | |
709 | + } | |
742 | 710 | |
743 | - $controlador = new clsControlador(); | |
744 | - if ($controlador->Logado() && $liberado || $this->convidado) { | |
745 | - $this->Formular(); | |
746 | - $this->VerificaPermicao(); | |
747 | - $this->CadastraAcesso(); | |
748 | - $saida_geral = $this->MakeHeadHtml(); | |
711 | + $controlador = new clsControlador(); | |
712 | + if ($controlador->Logado() && $liberado || $this->convidado) { | |
713 | + $this->Formular(); | |
714 | + $this->VerificaPermicao(); | |
715 | + $this->CadastraAcesso(); | |
716 | + $saida_geral = $this->MakeHeadHtml(); | |
749 | 717 | |
750 | - // @todo else ruim, colocar abre e fecha colchetes ao redor de foreach. | |
751 | - if ($this->renderMenu) { | |
752 | - $saida_geral .= $this->MakeBody(); | |
753 | - } | |
754 | - else { | |
755 | - foreach ($this->clsForm as $form) { | |
756 | - $saida_geral .= $form->RenderHTML(); | |
718 | + // @todo else ruim, colocar abre e fecha colchetes ao redor de foreach. | |
719 | + if ($this->renderMenu) { | |
720 | + $saida_geral .= $this->MakeBody(); | |
721 | + } | |
722 | + else { | |
723 | + foreach ($this->clsForm as $form) { | |
724 | + $saida_geral .= $form->RenderHTML(); | |
725 | + } | |
757 | 726 | } |
758 | - } | |
759 | 727 | |
760 | - $saida_geral .= $this->MakeFootHtml(); | |
728 | + $saida_geral .= $this->MakeFootHtml(); | |
761 | 729 | |
762 | - if ($_GET['suspenso'] == 1 || $_SESSION['suspenso'] == 1 || $_SESSION["tipo_menu"] == 1) { | |
763 | - if ($this->renderMenuSuspenso) { | |
764 | - $saida_geral = str_replace("<!-- #&MENUSUSPENSO&# -->", $this->makeMenuSuspenso(), $saida_geral); | |
765 | - } | |
730 | + if ($_GET['suspenso'] == 1 || $_SESSION['suspenso'] == 1 || $_SESSION["tipo_menu"] == 1) { | |
731 | + if ($this->renderMenuSuspenso) { | |
732 | + $saida_geral = str_replace("<!-- #&MENUSUSPENSO&# -->", $this->makeMenuSuspenso(), $saida_geral); | |
733 | + } | |
766 | 734 | |
767 | - if ($_GET['suspenso'] == 1) { | |
768 | - @session_start(); | |
769 | - $_SESSION['suspenso'] = 1; | |
770 | - @session_write_close(); | |
735 | + if ($_GET['suspenso'] == 1) { | |
736 | + @session_start(); | |
737 | + $_SESSION['suspenso'] = 1; | |
738 | + @session_write_close(); | |
739 | + } | |
771 | 740 | } |
772 | 741 | } |
773 | - } | |
774 | - elseif ((empty($_POST['login'])) || (empty($_POST['senha'])) && $liberado) { | |
775 | - $saida_geral .= $this->MakeHeadHtml(); | |
776 | - $controlador->Logar(FALSE); | |
777 | - $saida_geral .= $this->MakeFootHtml(); | |
778 | - } | |
779 | - else { | |
780 | - $controlador->Logar(TRUE); | |
781 | - if ($controlador->Logado() && $liberado) { | |
782 | - $this->Formular(); | |
783 | - $this->VerificaPermicao(); | |
784 | - $this->CadastraAcesso(); | |
785 | - $saida_geral = $this->MakeHeadHtml(); | |
786 | - $saida_geral .= $this->MakeBody(); | |
742 | + elseif ((empty($_POST['login'])) || (empty($_POST['senha'])) && $liberado) { | |
743 | + $saida_geral .= $this->MakeHeadHtml(); | |
744 | + $controlador->Logar(FALSE); | |
787 | 745 | $saida_geral .= $this->MakeFootHtml(); |
788 | 746 | } |
789 | 747 | else { |
790 | - $saida_geral = $this->MakeHeadHtml(); | |
791 | - $controlador->Logar (false); | |
792 | - $saida_geral .= $this->MakeFootHtml(); | |
748 | + $controlador->Logar(TRUE); | |
749 | + if ($controlador->Logado() && $liberado) { | |
750 | + $this->Formular(); | |
751 | + $this->VerificaPermicao(); | |
752 | + $this->CadastraAcesso(); | |
753 | + $saida_geral = $this->MakeHeadHtml(); | |
754 | + $saida_geral .= $this->MakeBody(); | |
755 | + $saida_geral .= $this->MakeFootHtml(); | |
756 | + } | |
757 | + else { | |
758 | + $saida_geral = $this->MakeHeadHtml(); | |
759 | + $controlador->Logar (false); | |
760 | + $saida_geral .= $this->MakeFootHtml(); | |
761 | + } | |
793 | 762 | } |
794 | - } | |
795 | 763 | |
796 | - echo $saida_geral; | |
764 | + echo $saida_geral; | |
765 | + | |
766 | + $cronometro->marca('fim'); | |
767 | + $tempoTotal = $cronometro->getTempoTotal(); | |
768 | + $tempoTotal += 0; | |
769 | + $objConfig = new clsConfig(); | |
770 | + | |
771 | + if ($tempoTotal > $objConfig->arrayConfig["intSegundosProcessaPagina"]) { | |
772 | + $conteudo = "<table border=\"1\" width=\"100%\">"; | |
773 | + $conteudo .= "<tr><td><b>Data</b>:</td><td>" . date( "d/m/Y H:i:s", time() ) . "</td></tr>"; | |
774 | + $conteudo .= "<tr><td><b>Script</b>:</td><td>{$_SERVER["PHP_SELF"]}</td></tr>"; | |
775 | + $conteudo .= "<tr><td><b>Tempo de processamento</b>:</td><td>{$tempoTotal} segundos</td></tr>"; | |
776 | + $conteudo .= "<tr><td><b>Tempo max permitido</b>:</td><td>{$objConfig->arrayConfig["intSegundosProcessaPagina"]} segundos</td></tr>"; | |
777 | + $conteudo .= "<tr><td><b>URL get</b>:</td><td>{$_SERVER['QUERY_STRING']}</td></tr>"; | |
778 | + $conteudo .= "<tr><td><b>Metodo</b>:</td><td>{$_SERVER["REQUEST_METHOD"]}</td></tr>"; | |
779 | + | |
780 | + if ($_SERVER["REQUEST_METHOD"] == "POST") { | |
781 | + $conteudo .= "<tr><td><b>POST vars</b>:</td><td>"; | |
782 | + foreach ($_POST as $var => $val) { | |
783 | + $conteudo .= "{$var} => {$val}<br>"; | |
784 | + } | |
785 | + $conteudo .= "</td></tr>"; | |
786 | + } | |
787 | + elseif ($_SERVER["REQUEST_METHOD"] == "GET") { | |
788 | + $conteudo .= "<tr><td><b>GET vars</b>:</td><td>"; | |
789 | + foreach ($_GET as $var => $val) { | |
790 | + $conteudo .= "{$var} => {$val}<br>"; | |
791 | + } | |
792 | + $conteudo .= "</td></tr>"; | |
793 | + } | |
797 | 794 | |
798 | - $cronometro->marca('fim'); | |
799 | - $tempoTotal = $cronometro->getTempoTotal(); | |
800 | - $tempoTotal += 0; | |
801 | - $objConfig = new clsConfig(); | |
795 | + if ($_SERVER['HTTP_REFERER']) { | |
796 | + $conteudo .= "<tr><td><b>Referrer</b>:</td><td>{$_SERVER["HTTP_REFERER"]}</td></tr>"; | |
797 | + } | |
802 | 798 | |
803 | - if ($tempoTotal > $objConfig->arrayConfig["intSegundosProcessaPagina"]) { | |
804 | - $conteudo = "<table border=\"1\" width=\"100%\">"; | |
805 | - $conteudo .= "<tr><td><b>Data</b>:</td><td>" . date( "d/m/Y H:i:s", time() ) . "</td></tr>"; | |
806 | - $conteudo .= "<tr><td><b>Script</b>:</td><td>{$_SERVER["PHP_SELF"]}</td></tr>"; | |
807 | - $conteudo .= "<tr><td><b>Tempo de processamento</b>:</td><td>{$tempoTotal} segundos</td></tr>"; | |
808 | - $conteudo .= "<tr><td><b>Tempo max permitido</b>:</td><td>{$objConfig->arrayConfig["intSegundosProcessaPagina"]} segundos</td></tr>"; | |
809 | - $conteudo .= "<tr><td><b>URL get</b>:</td><td>{$_SERVER['QUERY_STRING']}</td></tr>"; | |
810 | - $conteudo .= "<tr><td><b>Metodo</b>:</td><td>{$_SERVER["REQUEST_METHOD"]}</td></tr>"; | |
799 | + $conteudo .= "</table>"; | |
811 | 800 | |
812 | - if ($_SERVER["REQUEST_METHOD"] == "POST") { | |
813 | - $conteudo .= "<tr><td><b>POST vars</b>:</td><td>"; | |
814 | - foreach ($_POST as $var => $val) { | |
815 | - $conteudo .= "{$var} => {$val}<br>"; | |
816 | - } | |
817 | - $conteudo .= "</td></tr>"; | |
818 | - } | |
819 | - elseif ($_SERVER["REQUEST_METHOD"] == "GET") { | |
820 | - $conteudo .= "<tr><td><b>GET vars</b>:</td><td>"; | |
821 | - foreach ($_GET as $var => $val) { | |
822 | - $conteudo .= "{$var} => {$val}<br>"; | |
823 | - } | |
824 | - $conteudo .= "</td></tr>"; | |
801 | + $objMail = new clsEmail($objConfig->arrayConfig['ArrStrEmailsAdministradores'], "[INTRANET - PMI] Desempenho de pagina", $conteudo); | |
802 | + $objMail->envia(); | |
825 | 803 | } |
804 | + } | |
805 | + catch (Exception $e) { | |
806 | + $lastError = error_get_last(); | |
826 | 807 | |
827 | - if ($_SERVER['HTTP_REFERER']) { | |
828 | - $conteudo .= "<tr><td><b>Referrer</b>:</td><td>{$_SERVER["HTTP_REFERER"]}</td></tr>"; | |
829 | - } | |
808 | + @session_start(); | |
809 | + $_SESSION['last_error_message'] = $e->getMessage(); | |
810 | + $_SESSION['last_php_error_message'] = $lastError['message']; | |
811 | + $_SESSION['last_php_error_line'] = $lastError['line']; | |
812 | + $_SESSION['last_php_error_file'] = $lastError['file']; | |
813 | + @session_write_close(); | |
830 | 814 | |
831 | - $conteudo .= "</table>"; | |
815 | + error_log("Erro inesperado (pego em clsBase): " . $e->getMessage()); | |
816 | + NotificationMailer::unexpectedError($e->getMessage()); | |
832 | 817 | |
833 | - $objMail = new clsEmail($objConfig->arrayConfig['ArrStrEmailsAdministradores'], "[INTRANET - PMI] Desempenho de pagina", $conteudo); | |
834 | - $objMail->envia(); | |
818 | + die("<script>document.location.href = '/module/Error/unexpected';</script>"); | |
835 | 819 | } |
836 | 820 | } |
837 | 821 | |
... | ... | @@ -841,4 +825,26 @@ class clsBase extends clsConfig |
841 | 825 | $this->prog_alert = $string; |
842 | 826 | } |
843 | 827 | } |
844 | -} | |
845 | 828 | \ No newline at end of file |
829 | + | |
830 | + protected function checkUserExpirations() { | |
831 | + $user = Portabilis_Utils_User::load('current_user'); | |
832 | + $uri = $_SERVER['REQUEST_URI']; | |
833 | + $forcePasswordUpdate = $GLOBALS['coreExt']['Config']->app->user_accounts->force_password_update == true; | |
834 | + | |
835 | + if($user['expired_account'] || $user['proibido'] != '0' || $user['ativo'] != '1') | |
836 | + header("Location: /intranet/logof.php"); | |
837 | + | |
838 | + elseif($user['expired_password'] && $forcePasswordUpdate && $uri != '/module/Usuario/AlterarSenha') | |
839 | + header("Location: /module/Usuario/AlterarSenha"); | |
840 | + } | |
841 | + | |
842 | + // wrappers for Portabilis_*Utils* | |
843 | + | |
844 | + protected function db() { | |
845 | + return Portabilis_Utils_Database::db(); | |
846 | + } | |
847 | + | |
848 | + function _currentUserId() { | |
849 | + return Portabilis_Utils_User::currentUserId(); | |
850 | + } | |
851 | +} | ... | ... |