Ejemplo n.º 1
0
 /**
  * Construtor
  */
 public function __construct($lCria = FALSE)
 {
     $aSessao = Zend_session::namespaceGet('sessao');
     if ($lCria == FALSE) {
         if (!empty($aSessao['acl'])) {
             return;
         } else {
             $this->_acl = new Zend_Acl();
         }
     } else {
         $this->_acl = $aSessao['acl'];
     }
     $this->_setupResourcesPrivileges();
     $this->carregaMenus();
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $this->_setupResourcesPrivilegesUserAuth();
     }
     $this->_saveAcl();
 }
Ejemplo n.º 2
0
 /**
  * Controla o tempo de inatividade do usuário no sistema para expiração da sessão
  */
 public function sessionControl()
 {
     // Inicia a sessão
     if (!Zend_Session::isStarted()) {
         Zend_session::start();
     }
     $oSessao = new Zend_Session_Namespace('controle_sessao');
     // Tempo de invativade em segundos para encerramento da sessão
     $iTempoMaximoDeInatividadeEmSegundos = 1800;
     // 30 minutos
     // Horário da última atividade do usuário
     $iUltimaAtivade = isset($oSessao->ultima_atividade) ? $oSessao->ultima_atividade : FALSE;
     // Verifica se o usuário está logado
     $lUsuarioLogado = Zend_Auth::getInstance()->getIdentity() != NULL;
     // Redireciona o usuário se o tempo de inatividade expirar
     if ($iUltimaAtivade && time() - $iUltimaAtivade > $iTempoMaximoDeInatividadeEmSegundos && $lUsuarioLogado) {
         Zend_Auth::getInstance()->clearIdentity();
         $oRedirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
         $oRedirector->gotoSimpleAndExit('index', 'logout', 'auth');
     }
     // Seta o horário da última ação do usuário
     $oSessao->ultima_atividade = time();
 }