CodeIgniter Custom Lib - PullRequest
       1

CodeIgniter Custom Lib

0 голосов
/ 16 июня 2011

я пытаюсь создать новую библиотеку, которая будет автоматически загружаться при каждой загрузке контроллера и аутентификации, чтобы увидеть, вошел ли пользователь в систему

Я автоматически загружаю скрипт и его загрузку в порядке, однако он не выполняет аутентификацию

Мой Lib

class Authentication {

var $CI;
function Authenication() {

    $this->CI =& get_instance();

    $this->CI->load->library('session');
    $is_logged_in = $this->CI->session->userdata('is_logged_in');
    if(!isset($is_logged_in) || $is_logged_in != true)
    {
        echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';    
        die();        
    }
}

}

Любые предложения с благодарностью

1 Ответ

2 голосов
/ 16 июня 2011

Я вижу, что вы пытаетесь сделать, и я бы предложил другой подход.

Создайте MY_Controller и поместите его в основную папку. Вот базовое представление о том, что должно быть в этом файле.

class Public_Controller extends CI_Controller 
{
    // The data array holds all of the information to be displayed in views
    public $data = array();

    function __construct() 
    {
        parent::__construct();

        // Authentication library handles sessions and authentication, etc...
        $this->load->library('Authentication');

        $this->data['account']['is_logged_in'] = $this->authenication->is_logged_in();
    }
}

class Auth_Controller extends Public_Controller
{   
    function __construct() 
    {
        parent::__construct();

        if ( !$this->data['account']['is_logged_in'] )
        {
            redirect('user/login', 'location');   
        }
    }
}

Если вы сделаете это таким образом, то для контроллеров, требующих аутентификации, вы можете просто расширить Auth_Controller, в противном случае расширить Public_Controller.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...