You will need to separate controllers for each type of permission, and have a module that checks the session variable set when the user logs in with the type of permission allowed for that particular controller.
// module User_model:
function is_logged_in_admin()
{
$is_logged_in = $this->session->userdata('is_logged_in');
$user_status = $this->session->userdata('user_type');
if(!isset($is_logged_in) || $is_logged_in != true || $user_status != 'admin')
{
$this->session->sess_destroy();
redirect('please_login/', 'refresh');
}
}
Controller , load the module and check in the construct:
function __construct()
{
parent::__construct();
$this->load->model('User_model');
$this->User_model-> is_logged_in_admin();
}