Existem diversas formas, como hooks (o teu problema é quase certo a falta de 
carregar o helper), pelo construtor da classe, etc…

A solução mais elegante que encontrei foi essa: 
http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY

Resumindo em miúdos, ao invés de todos os controllers herdarem o MY_Controller, 
eles podem ou herdar o Admin_controller ou Public_controller (ambos os nomes 
podem ser alterados). E estas duas classes (podem ser mais) herdam o 
MY_Controller.

No Admin_controller eu coloquei assim (no constructor): 

//Páginas que não necessitam estar logado
$paginas_login  = array('admin/login', 'admin/logout');
//Dê uma olhada no user_guide
$pagina_atual   = base_url() . $this->uri->uri_string();

//Evita o loop eterno
if ( ! in_array($pagina_atual, $paginas_login) )
{
        if ( ! $this->session->userdata('login_id') )
        {
                //Atenção ao $paginas_login
                redirect('admin/login');
        }
} 

É por isso que quando vejo o pessoal reclamando que o CI não tem controle de 
acesso, eu dou risada. É tão simples implementar que a melhor opção é deixar a 
critério do desenvolvedor.

É só prestar atenção a nome de sessions e o que está no autoload ou não. Como o 
helper url eu utilizo quase sempre, ele está no autoload. 

Em 28/02/2012, às 16:51, Nino Baldo escreveu:

> Ola pessoal,
> 
> Gostaria de saber como validar se o usuário está logado ou não em todas as
> telas e caso não esteja direcionar para o controller de login?
> 
> Até agora já fiz um hook de "pre_controller", mas não consigo redirecionar,
> pois quando uso o "redirect('pagina')" ele me exibe esse erro: Fatal error:
> Call to undefined function redirect()
> 
> 
> Att,
> 
> *Álvaro Vilobaldo Rios da Silva*
> 
> mail to: [email protected] <[email protected]>
> *Analyst Programmer*
> 
> *São Paulo and Region, Brazil*
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> 
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------

_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a