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,11 +25,19 @@ | ||
25 | * @license @@license@@ | 25 | * @license @@license@@ |
26 | * @package iEd_Include | 26 | * @package iEd_Include |
27 | * @since Arquivo disponível desde a versão 1.0.0 | 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 | // Inclui arquivo de bootstrapping | 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 | require_once 'include/clsCronometro.inc.php'; | 42 | require_once 'include/clsCronometro.inc.php'; |
35 | require_once 'clsConfigItajai.inc.php'; | 43 | require_once 'clsConfigItajai.inc.php'; |
@@ -41,6 +49,11 @@ require_once 'include/Geral.inc.php'; | @@ -41,6 +49,11 @@ require_once 'include/Geral.inc.php'; | ||
41 | require_once 'include/pmicontrolesis/geral.inc.php'; | 49 | require_once 'include/pmicontrolesis/geral.inc.php'; |
42 | require_once 'include/funcoes.inc.php'; | 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 | * clsBase class. | 58 | * clsBase class. |
46 | * | 59 | * |
@@ -199,10 +212,6 @@ class clsBase extends clsConfig | @@ -199,10 +212,6 @@ class clsBase extends clsConfig | ||
199 | function VerificaPermicaoNumerico($processo_ap) | 212 | function VerificaPermicaoNumerico($processo_ap) |
200 | { | 213 | { |
201 | if (is_numeric($processo_ap)) { | 214 | if (is_numeric($processo_ap)) { |
202 | - @session_start(); | ||
203 | - $id_usuario = $_SESSION['id_pessoa']; | ||
204 | - session_write_close(); | ||
205 | - | ||
206 | $sempermissao = TRUE; | 215 | $sempermissao = TRUE; |
207 | 216 | ||
208 | if ($processo_ap == 0) { | 217 | if ($processo_ap == 0) { |
@@ -210,11 +219,9 @@ class clsBase extends clsConfig | @@ -210,11 +219,9 @@ class clsBase extends clsConfig | ||
210 | } | 219 | } |
211 | 220 | ||
212 | if ($processo_ap != 0) { | 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 | $sempermissao = FALSE; | 225 | $sempermissao = FALSE; |
219 | } | 226 | } |
220 | 227 | ||
@@ -222,9 +229,9 @@ class clsBase extends clsConfig | @@ -222,9 +229,9 @@ class clsBase extends clsConfig | ||
222 | // permissão de acesso ao processo. Já a segunda, não existe | 229 | // permissão de acesso ao processo. Já a segunda, não existe |
223 | // sentido para nivel = 2 já que processoAp pode ser de níveis | 230 | // sentido para nivel = 2 já que processoAp pode ser de níveis |
224 | // maiores que 2. | 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 | $sempermissao = FALSE; | 235 | $sempermissao = FALSE; |
229 | } | 236 | } |
230 | 237 | ||
@@ -250,11 +257,11 @@ class clsBase extends clsConfig | @@ -250,11 +257,11 @@ class clsBase extends clsConfig | ||
250 | 257 | ||
251 | $variaveis = "POST\n{$posts}GET\n{$gets}SESSION\n{$sessions}"; | 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 | else { | 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 | return FALSE; | 267 | return FALSE; |
@@ -298,35 +305,33 @@ class clsBase extends clsConfig | @@ -298,35 +305,33 @@ class clsBase extends clsConfig | ||
298 | $menu_tutor = ''; | 305 | $menu_tutor = ''; |
299 | 306 | ||
300 | if ($this->processoAp) { | 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 | if ($menu_atual) { | 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 | $submenu[] = $tupla['cod_menu_submenu']; | 314 | $submenu[] = $tupla['cod_menu_submenu']; |
309 | } | 315 | } |
310 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); | 316 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); |
311 | $where = "ref_cod_menu_submenu = $where"; | 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 | else { | 320 | else { |
315 | $this->prog_alert .= "O menu pai do processo AP {$this->processoAp} está voltando vazio (cod_menu inexistente?).<br>"; | 321 | $this->prog_alert .= "O menu pai do processo AP {$this->processoAp} está voltando vazio (cod_menu inexistente?).<br>"; |
316 | } | 322 | } |
317 | } | 323 | } |
318 | elseif ($_SESSION['menu_atual']) { | 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 | $submenu[] = $tupla['cod_menu_submenu']; | 329 | $submenu[] = $tupla['cod_menu_submenu']; |
325 | } | 330 | } |
326 | 331 | ||
327 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); | 332 | $where = implode(" OR ref_cod_menu_submenu = ", $submenu); |
328 | $where = "ref_cod_menu_submenu = $where"; | 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 | if ($menu_tutor) { | 337 | if ($menu_tutor) { |
@@ -353,15 +358,13 @@ class clsBase extends clsConfig | @@ -353,15 +358,13 @@ class clsBase extends clsConfig | ||
353 | $saida = '<script type="text/javascript">'; | 358 | $saida = '<script type="text/javascript">'; |
354 | $saida .= 'array_menu = new Array(); array_id = new Array();'; | 359 | $saida .= 'array_menu = new Array(); array_id = new Array();'; |
355 | 360 | ||
356 | - $banco = new clsBanco(); | ||
357 | foreach ($lista_menu as $menu_suspenso) { | 361 | foreach ($lista_menu as $menu_suspenso) { |
358 | $ico_menu = ''; | 362 | $ico_menu = ''; |
359 | 363 | ||
360 | if (is_numeric($menu_suspenso['ref_cod_ico'])) { | 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 | $ico_menu = "imagens/banco_imagens/$ico_menu"; | 368 | $ico_menu = "imagens/banco_imagens/$ico_menu"; |
366 | } | 369 | } |
367 | } | 370 | } |
@@ -540,61 +543,12 @@ class clsBase extends clsConfig | @@ -540,61 +543,12 @@ class clsBase extends clsConfig | ||
540 | 543 | ||
541 | $menu_dinamico = $this->makeBanner(); | 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 | $notificacao = ""; | 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 | $titulo = ($url) ? "<a href=\"{$url}\">{$titulo}</a>": $titulo; | 553 | $titulo = ($url) ? "<a href=\"{$url}\">{$titulo}</a>": $titulo; |
600 | 554 | ||
@@ -606,14 +560,29 @@ class clsBase extends clsConfig | @@ -606,14 +560,29 @@ class clsBase extends clsConfig | ||
606 | </div>"; | 560 | </div>"; |
607 | } | 561 | } |
608 | $saida = str_replace( "<!-- #&NOTIFICACOES&# -->", $notificacao, $saida ); | 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 | // Pega o endereço IP do host, primeiro com HTTP_X_FORWARDED_FOR (para pegar o IP real | 587 | // Pega o endereço IP do host, primeiro com HTTP_X_FORWARDED_FOR (para pegar o IP real |
619 | // caso o host esteja atrás de um proxy) | 588 | // caso o host esteja atrás de um proxy) |
@@ -626,9 +595,8 @@ class clsBase extends clsConfig | @@ -626,9 +595,8 @@ class clsBase extends clsConfig | ||
626 | $ip_maquina = $_SERVER['REMOTE_ADDR']; | 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 | return $saida; | 601 | return $saida; |
634 | } | 602 | } |
@@ -652,11 +620,10 @@ class clsBase extends clsConfig | @@ -652,11 +620,10 @@ class clsBase extends clsConfig | ||
652 | { | 620 | { |
653 | $retorno = ''; | 621 | $retorno = ''; |
654 | $listaBanners = array(); | 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 | $listaBanners[] = array("titulo"=>$title, "caminho"=>$caminho, "prioridade"=>$prioridade, "link"=>$link, "controle_inicio"=>0, "controle_fim"=>0); | 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,111 +694,128 @@ class clsBase extends clsConfig | ||
727 | 694 | ||
728 | function MakeAll () | 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 | $saida_geral .= $this->MakeFootHtml(); | 745 | $saida_geral .= $this->MakeFootHtml(); |
788 | } | 746 | } |
789 | else { | 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,4 +825,26 @@ class clsBase extends clsConfig | ||
841 | $this->prog_alert = $string; | 825 | $this->prog_alert = $string; |
842 | } | 826 | } |
843 | } | 827 | } |
844 | -} | ||
845 | \ No newline at end of file | 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 | +} |