Prueba usando Hooks.
Aquí tienes un buen tutorial para iniciarte en el concepto:
http://www.noquieroprogramar.com/usa...n-codeigniter/
Este es el que yo utilizo:
Cita: <?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class GestionSesion {
public function GestionSesion() {
$CI = & get_instance();
if (!$CI->session->userdata('logueado') || $CI->session->userdata('logueado') == '') { //si está logueado
if ($CI->router->module == 'admin' || $CI->router->class == 'admin' || $CI->router->module == 'panel') { //comprobamos si intenta acceder al modulo admin, a algun class admin o al panel de control
redirect();
}
}
if($CI->router->module == 'admin'){ //si se trata de acceder al modulo admin
if($CI->session->userdata('usu_fk_rol') > 2 || $CI->session->userdata('usu_fk_rol') == ''){ //si el rol es superior a 2 lo mandamos al inicio
redirect();
}
}
}
}
?>