如果处于维护模式Codeigniter,则管理员可以访问

时间:2014-05-31 15:14:43

标签: codeigniter

我在application / config.php中有一个配置项,如果设置为true,将打开维护模式并重定向到URL。

但它阻止了每一页。我使用MY_Controller进行核心维护。我希望能够访问我的modules / admin / controllers / folders +

中的控制器

在MY_Controller.php上

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends MX_Controller {
  public function __construct() {
      parent::__construct();
      if(!config_item('system_installed')) redirect('install');
   }
}

class Controller extends MY_Controller {
   public function __construct() {
      parent::__construct(); 
      if($this->config->item('system_maintenance') == TRUE) {
         redirect('maintenance');
         if($this->uri->segment('admin')) { // Should All ways has access

         }
      }
   }
}

在Application / Config.php上

$config['system_maintenance] = TRUE; // Active

Example for Not Active And $config['system_maintenance] = FALSE; // Non Active

1 个答案:

答案 0 :(得分:1)

您可以在控制器__construct()中检查IP地址,并通过IP确定它是否为admin用户。也许最好检查客户端的Web浏览器是否有某些特定的cookie,如果有,那么它是超级用户,CI应该忽略维护模式限制。当然,在维护模式下需要使用的每个类构造函数中检查一下。