Попробуйте использовать функцию сеанса Codeigniter для аутентификации пользователя и его роли (например, "admin", "customer" и т. Д.)
Затем добавьте конструктор, подобный этому, к каждому контроллеру (это всего лишь пример)
class Admin_only extends CI_Controller {
public function __construct()
{
parent::__construct();
if( !isset($this->session->userdata['logged_in']) || $this->session->userdata['logged_in']['user_type'] != 'administrator' )
{
// you're not welcome here
redirect('welcome/access_error');
}
}
__construct () запускается каждый раз, когда к чему-либо внутри контроллера обращаются.
Посмотрите, как в моем примере (есть более чистые способы, но это определенно будет работать), я постоянно проверяю, вошел ли пользователь в систему И не является ли он администратором (на самом деле я проверяю противоположное ... вошел в систему ИЛИ не администратор, но логически это одно и то же), и если проверка не удалась, пользователь перенаправляется из контроллера.