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 | +} | ... | ... |