具有正确的角色ID时不允许访问主页

时间:2017-10-31 03:59:19

标签: codeigniter

我的维护模式打开时。

我希望能够在启用维护模式时查看主页。

但仅限成员会话role_id = 1

即使我的会话role_id == 1继续重定向到维护页面

,目前也不允许我查看主页
  

问题:如果维护模式处于活动状态但会话role id == '1'

,如何确保可以查看主页
public function maintenance_mode() {

    $maintenance_mode = $this->is_maintenance();

    if ($maintenance_mode) {

        if ($this->session->userdata('role_id') == '1') {
            return true;
        } else {
            $route = $this->uri->segment(1) .'/'. $this->uri->segment(2);

            $ignore = array('common/maintenance');

            if (!in_array($route, $ignore)) {
                redirect(base_url('common/maintenance'));
            }
        }
    } 
}

public function is_maintenance() {
    $query = $this->db->where('item', 'maintenance_mode')->get('settings')->row('value');
    return $query;
}

1 个答案:

答案 0 :(得分:0)

解决方案

我的问题中的代码很好。我发现了这个问题。它为www.example.co.nz创建了两次会话,为example.co.nz创建了一次会议

我需要添加cookie域

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '.example.co.nz';
$config['cookie_path']      = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = APPPATH . 'cache/sessions/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;