Как разделить интерфейс и админ в рамках CodeIgniter? - PullRequest
0 голосов
/ 24 августа 2018

Я начал работать над проектом, который должен иметь панель администратора и интерфейс, и я хочу использовать платформу CodeIgniter по запросу клиента. Но проблема в том, что я не могу понять, как начать проект, как упоминалось выше. Я хочу, чтобы папка была похожа на картинку общего доступа

enter image description here

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Помимо Admin_controller (для отдельных правил безопасности), для лучшей организации хорошо использовать некоторое расширение, подобное этому:

HMVC: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src

С этим вы сможете получить такую ​​структуру:

enter image description here

URL-адресов

http://awesome.site/public_controller

http://awesome.site/*module_name*/*controller_inside_module*

http://awesome.site/admin/login
0 голосов
/ 24 августа 2018

Попробуйте использовать функцию сеанса 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 () запускается каждый раз, когда к чему-либо внутри контроллера обращаются.

Посмотрите, как в моем примере (есть более чистые способы, но это определенно будет работать), я постоянно проверяю, вошел ли пользователь в систему И не является ли он администратором (на самом деле я проверяю противоположное ... вошел в систему ИЛИ не администратор, но логически это одно и то же), и если проверка не удалась, пользователь перенаправляется из контроллера.

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