Beispiel #1
0
 public function permissaoUsuario($class, $method)
 {
     try {
         // Converte a sessão serializada anteriormente em objeto
         $usuario = unserialize($_SESSION['usuario']);
         // Carrega uma nova instância da classe SqlUsuario para utilizar o método validarPermissao
         $sqlUsuario = new SqlUsuario();
         // Se o método for igual a classe (ou seja, vazio), a página acessada é o index. Caso contrário, retorna o método
         $method = $class == $method ? 'index' : $method;
         // Valida a permissão do usuário para acessar a classe e o método em questão
         $permissao = $sqlUsuario->validarPermissao($class, $method, (int) $usuario->get_idUsuario(), $usuario->get_tipoUsuarioAtivo()->get_idTipoUsuario());
         //            var_dump($usuario->get_tipoUsuarioAtivo()->get_idTipoUsuario()) . '<br />';
         //            var_dump($permissao);
         //            die;
         if (!empty($permissao)) {
             if ($permissao[0]['manutencao'] == 1) {
                 header('location:' . base_url() . 'usuario/permissao_usuario_w/manutencao_mensagem');
                 exit;
             }
             // Se o tipo de usuário ativo for igual ou menor que zero (não estiver definido), e o id de usuário maior que zero (estiver definido), e o método selecionado for diferente da página de seleção de vínculos...
             if ((int) $usuario->get_tipoUsuarioAtivo()->get_idTipoUsuario() <= 0 && (int) $usuario->get_idUsuario() > 0 && $method != 'selecinoarVinculo') {
                 // Se o usuário estiver cadastrado em mais de um tipo de usuário
                 if (count($usuario->get_tipoUsuario()) > 1) {
                     // redireciona para a página de seleção de tipo de usuário, para que o mesmo ecolha qual deseja consultar
                     header('location:' . base_url() . 'usuario/usuario_w/selecinoarVinculo');
                     exit;
                 } else {
                     foreach ($usuario->get_tipoUsuario() as $tipo) {
                         header('location:' . base_url() . 'usuario/usuario_w/selecinoarVinculo/' . $tipo->get_idTipoUsuario() . '');
                     }
                 }
             }
         } else {
             // redireciona para página de login
             //                session_destroy();
             //                header('location:' . base_url() . 'usuario/login_w');
             //                exit();
             $this->redirectToLogin();
         }
         return $permissao;
     } catch (Exception $e) {
         //            session_destroy();
         //            header('location:' . base_url());
         $this->redirectToLogin();
     }
 }