Codeigniter войдите в контроллер - PullRequest
1 голос
/ 24 ноября 2010

Эй!Я очень новичок в Codeigniter, я пытаюсь защитить весь контроллер администратора.Я решил начать здесь:

function Admin()
{
    parent::Controller();
    if(!isset($_SESSION['loggedin'])){
        $this->login();
    }
}

, но это, очевидно, не полностью.Как мне также остановить метод, который пытается запустить (например, index ()), и я на правильном пути здесь ??

Спасибо за вашу помощь !!

Ответы [ 2 ]

1 голос
/ 24 ноября 2010

есть

Расширение базовых контроллеров: MY_Controller.php

<?php
class MY_Controller extends Controller {
    function __construct()
    {
      parent::Controller();
      $user_id = $this->session->userdata('user_id');
      $this->data['user'] = $this->user_lib->get($user_id);
    }
}
?>

Вы можете хранить все виды информации в этой конструкции.Он просто получает идентификатор текущего вошедшего в систему пользователя и присваивает ему $data['user'].Это будет изменено в зависимости от того, какую библиотеку аутентификации вы используете, но вы получите суть.Теперь у вас есть доступ к текущему идентификатору пользователя и всем его деталям из любого контроллера, который расширяет «MY_Controller»

, теперь вы можете создать «административный» контроллер или любое количество других для ограничения доступа.вот так: Admin_Controller.php

<?php
class Admin_Controller extends MY_Controller {
    function __construct()
    {
        parent::Controller();
        if($this->data['user']['group'] !== 'admin')
        {
            show_error('Error - you need to be an admin.');
        }
    }

}
?>

Public_controller.php

<?php
class Public_Controller extends MY_Controller {
    function __construct()
    {
        parent::Controller();
        if($this->data['user']['group'] !== 'member')
        {
            show_error('You need to login to see this page...');
        }
    }

}
?>

, как вы можете видеть ... возможности безграничны

Итак, для страниц только для администратора - используйте контроллер администратора для страниц только для членов - общедоступные для "обычных" страниц - используйте контроллер по умолчанию.

Я сошлюсь на Фил Стерджон статья, где я впервые об этом прочитал

0 голосов
/ 24 ноября 2010

поместите проверочный код сеанса в каждую функцию в Admin Controller, которую вы хотите защитить. это самый простой способ сделать это ..

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